多线程
好小伙17
学无止境
展开
-
04线程扩展
死锁的产生必要4条件: 互斥,共享资源 X 和 Y 只能被一个线程占用; 占有且等待,线程 T1 已经取得共享资源 X,在等待共享资源 Y 的时候,不释放共享资源 X; 不可抢占,其他线程不能强行抢占线程 T1 占有的资源; 循环等待,线程 T1 等待线程 T2 占有的资源,线程 T2 等待线程 T1 占有的资源,就是循环等待 以执行main方法后 产生死锁 @Data @AllArgsConstructor public class Account { private String accou原创 2020-06-09 22:37:46 · 92 阅读 · 0 评论 -
03线程通讯
wait和 notify 必须配合synchronized使用,wait方法释放锁,notify方法不释放锁(唤醒一个等待线程) 多线程中本地内存 如下代码中,线程t1启动,当main线程修改state参数为false时,t1线程应该跳出循环并打印变量 i 的值, 但运行发现并没有,t1线程并没有发现state参数被更改,原因是: 线程之间的共享变量存储在主内存中,但每个线程都有一个私有的本地内存,本地内存中存储了该线程以读/写共享变量的副本。 public class ThreadDemo3 {原创 2020-05-21 09:45:21 · 153 阅读 · 0 评论 -
02深入了解-锁(synchronized)
如下demo中 输出的count 结果小于如期的1000数 public class ThredDemo { public static int count = 0; public static void calc() { try { Thread.sleep(1); } catch (InterruptedException e) { e.printStackTrace(); }原创 2020-05-21 22:29:02 · 181 阅读 · 0 评论 -
01认识多线程及其使用
引出 并发/高并发 简单来说,并发是指单位时间内能够同时处理的请求数。默认情况下Tomcat可以支持的最大请求数是 150,也就是同时支持150个并发。当超过这个并发数的时候,就会开始导致响应延迟,连接丢失等问 题。 影响并发的两个因素: 硬件: CPU,内存,磁盘 网络 软件 线程数量 JVM内存分配大小 网络通讯机制(BIO,NIO,AIO) 磁盘IO Java中的线程 public class ThreadTest extends Thread{ @Override publ原创 2020-05-19 16:58:15 · 92 阅读 · 0 评论