随笔分类 - JAVA多线程
JAVA多线程
摘要:package 多线程练习; import java.util.concurrent.ExecutorService; import java.util.concurrent.Executors; public class 线程池 { public static void main(String[]
阅读全文
摘要:在生产者跟消费模式中常用两种方法来处理并发问题,管程法跟信用灯法 管程法:常用一个缓冲区来处理通知唤醒跟等待 信号灯法:常用一个标识位来处理唤醒跟等待操作 管程法: 1 package 多线程练习.锁学习.生产者消费模式; 2 3 public class 管程法 { 4 public static
阅读全文
摘要:package 多线程练习.锁学习; import java.io.PrintStream; import java.util.concurrent.locks.Lock; import java.util.concurrent.locks.ReentrantLock; /* ReentrantLo
阅读全文
摘要:package 多线程练习; import java.util.concurrent.CopyOnWriteArrayList; /* CopyOnWriteArrayList 是JUC当中的安全容器其中用了lock锁 可重入锁 */ public class CopyOnWriteArrayLis
阅读全文
摘要:1 package 多线程练习.锁学习; 2 3 /* 4 两个线程互相抱对方想要的锁 都在等待对方释放锁 所以卡死了 5 */ 6 public class 自定义死锁 { 7 public static void main(String[] args) { 8 Runnable lileilei
阅读全文
摘要:synchronized方法控制对象的访问,每个对象对应一把锁,每个synchronized方法都必须获得改方法的对象的锁才能执行,否则线程会阻塞,方法一旦执行,就独占这把锁,知道方法结束才释放锁,后面被阻塞的线程才能获得这个锁被执行 synchronized关键字可以用在方法上标识锁住this对象
阅读全文
摘要:1 package 多线程练习.不安全线程; 2 3 import java.util.ArrayList; 4 import java.util.List; 5 6 /* 7 没有实际创建那么多线程 8 */ 9 public class UnSafeList { 10 public static
阅读全文
摘要:1 package 多线程练习; 2 3 import com.sun.javafx.sg.prism.web.NGWebView; 4 5 import java.math.BigDecimal; 6 7 /* 8 模拟两个人同时取钱的情况 9 */ 10 public class UnSafeA
阅读全文
摘要:1 package 多线程练习; 2 3 public class 不安全线程买票实例 { 4 public static void main(String[] args) { 5 BuyTicket bt = new BuyTicket(); 6 new Thread(bt, "小明").star
阅读全文
摘要:1 package 多线程练习; 2 3 /* 4 虚拟机一定会执行完用户线程,当用户线程执行完毕 守护线程也就没了 5 将线程设置为守护线程的方法 threadGod.setDaemon(true); // 设置成守护线程 默认值:false 用户线程 true:守护线程 6 */ 7 publi
阅读全文
摘要:1 package 多线程练习; 2 3 /* 4 线程礼让不一定每次都成功 看CPU调度 5 */ 6 public class ThreadYieldTest { 7 public static void main(String[] args) { 8 Runnable rb1 = ()->{
阅读全文
摘要:1 package 多线程练习; 2 3 public class 观测线程状态 { 4 public static void main(String[] args) { 5 Runnable runnable = () -> { 6 for (int i = 0; i < 5; i++) { 7
阅读全文
摘要:1 package 多线程练习; 2 3 import java.text.SimpleDateFormat; 4 import java.util.Date; 5 6 public class 时间计时器 { 7 public static void main(String[] args) thr
阅读全文
摘要:1 package 多线程练习; 2 3 public class Thread优先级 { 4 public static void main(String[] args) { 5 Runnable runnable = () -> { 6 System.out.println("线程名:" + T
阅读全文
摘要:1 package 多线程练习; 2 3 public class ThreadStopTest implements Runnable { 4 //标识位 来 判断线程是否给他停止 5 private Boolean flag = true; 6 7 @Override 8 public void
阅读全文
浙公网安备 33010602011771号