线程
文章平均质量分 74
小白不很白
又爱又恨
展开
-
5.ThreadLocal (1)
多线程访问同一个变量的时候,很容易出现问题,特别是多线程对一个共享变量进行写入的时候。为了线程的安全在进行数据写入时候会进行数据的同步。 如上图: 如果要想实现多个线程操作同一个数据而不被其他线程所影响,就必须加锁操作,加锁又增加了使用的复杂度。 ThredLocal的用处就是当多个线程操作同一个变量的时候可以在创建一个ThredLocal,把共享变量复制到线程的本地threadLocals(threadLocals是Thread的成员变量) 中,这样各个线程进行操作的时候只能操作自己本地数据,这样就.原创 2022-03-21 18:09:06 · 246 阅读 · 0 评论 -
4.线程死锁
线城死锁就是指两个或两个以上的线程在抢占资源时,造成相互等待的现象,称为死锁。在没有外力的情况下是会一直等待无法执行下去的。 1. 死锁产生必须具备以下条件 **互斥条件:**指线程获取到的资源进行排它性使用,即当获取该资源锁的时候其他线程是获取不到该锁资源的。 **请求并持有:**当线程持有资源时,又要请求其他锁资源,但是其他所资源被其他线程所占有。但是等待的时候并不会释放自己所占有的资源。 **不可剥夺条件:**自己获取的所资源当没有使用完的时候不释放锁资源。 **环路等待条件:**环路等待就是.原创 2022-03-11 16:08:37 · 166 阅读 · 0 评论