随笔分类 -  JAVA多线程

JAVA多线程
摘要:package 多线程练习; import java.util.concurrent.ExecutorService; import java.util.concurrent.Executors; public class 线程池 { public static void main(String[] 阅读全文
posted @ 2022-01-16 17:06 Chris丶Woo 阅读(23) 评论(0) 推荐(0)
摘要:在生产者跟消费模式中常用两种方法来处理并发问题,管程法跟信用灯法 管程法:常用一个缓冲区来处理通知唤醒跟等待 信号灯法:常用一个标识位来处理唤醒跟等待操作 管程法: 1 package 多线程练习.锁学习.生产者消费模式; 2 3 public class 管程法 { 4 public static 阅读全文
posted @ 2022-01-16 16:49 Chris丶Woo 阅读(64) 评论(0) 推荐(0)
摘要:package 多线程练习.锁学习; import java.io.PrintStream; import java.util.concurrent.locks.Lock; import java.util.concurrent.locks.ReentrantLock; /* ReentrantLo 阅读全文
posted @ 2022-01-16 15:27 Chris丶Woo 阅读(61) 评论(0) 推荐(0)
摘要:package 多线程练习; import java.util.concurrent.CopyOnWriteArrayList; /* CopyOnWriteArrayList 是JUC当中的安全容器其中用了lock锁 可重入锁 */ public class CopyOnWriteArrayLis 阅读全文
posted @ 2022-01-16 15:13 Chris丶Woo 阅读(22) 评论(0) 推荐(0)
摘要:1 package 多线程练习.锁学习; 2 3 /* 4 两个线程互相抱对方想要的锁 都在等待对方释放锁 所以卡死了 5 */ 6 public class 自定义死锁 { 7 public static void main(String[] args) { 8 Runnable lileilei 阅读全文
posted @ 2022-01-16 15:07 Chris丶Woo 阅读(29) 评论(0) 推荐(0)
摘要:synchronized方法控制对象的访问,每个对象对应一把锁,每个synchronized方法都必须获得改方法的对象的锁才能执行,否则线程会阻塞,方法一旦执行,就独占这把锁,知道方法结束才释放锁,后面被阻塞的线程才能获得这个锁被执行 synchronized关键字可以用在方法上标识锁住this对象 阅读全文
posted @ 2022-01-15 22:36 Chris丶Woo 阅读(45) 评论(0) 推荐(0)
摘要:1 package 多线程练习.不安全线程; 2 3 import java.util.ArrayList; 4 import java.util.List; 5 6 /* 7 没有实际创建那么多线程 8 */ 9 public class UnSafeList { 10 public static 阅读全文
posted @ 2022-01-15 22:10 Chris丶Woo 阅读(33) 评论(0) 推荐(0)
摘要: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 阅读全文
posted @ 2022-01-15 19:48 Chris丶Woo 阅读(42) 评论(0) 推荐(0)
摘要:1 package 多线程练习; 2 3 public class 不安全线程买票实例 { 4 public static void main(String[] args) { 5 BuyTicket bt = new BuyTicket(); 6 new Thread(bt, "小明").star 阅读全文
posted @ 2022-01-15 17:33 Chris丶Woo 阅读(36) 评论(0) 推荐(0)
摘要:1 package 多线程练习; 2 3 /* 4 虚拟机一定会执行完用户线程,当用户线程执行完毕 守护线程也就没了 5 将线程设置为守护线程的方法 threadGod.setDaemon(true); // 设置成守护线程 默认值:false 用户线程 true:守护线程 6 */ 7 publi 阅读全文
posted @ 2022-01-15 16:47 Chris丶Woo 阅读(43) 评论(0) 推荐(0)
摘要:1 package 多线程练习; 2 3 /* 4 线程礼让不一定每次都成功 看CPU调度 5 */ 6 public class ThreadYieldTest { 7 public static void main(String[] args) { 8 Runnable rb1 = ()->{ 阅读全文
posted @ 2022-01-15 16:20 Chris丶Woo 阅读(29) 评论(0) 推荐(0)
摘要: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 阅读全文
posted @ 2022-01-15 16:16 Chris丶Woo 阅读(20) 评论(0) 推荐(0)
摘要: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 阅读全文
posted @ 2022-01-15 16:00 Chris丶Woo 阅读(220) 评论(0) 推荐(0)
摘要:1 package 多线程练习; 2 3 public class Thread优先级 { 4 public static void main(String[] args) { 5 Runnable runnable = () -> { 6 System.out.println("线程名:" + T 阅读全文
posted @ 2022-01-15 15:58 Chris丶Woo 阅读(32) 评论(0) 推荐(0)
摘要:1 package 多线程练习; 2 3 public class ThreadStopTest implements Runnable { 4 //标识位 来 判断线程是否给他停止 5 private Boolean flag = true; 6 7 @Override 8 public void 阅读全文
posted @ 2022-01-14 16:10 Chris丶Woo 阅读(33) 评论(0) 推荐(0)