![](https://img-blog.csdnimg.cn/20201014180756925.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
多线程
Flag_died
这个作者很懒,什么都没留下…
展开
-
Synchronized,Atomicinteger,volatile
目录1、synchronized2、volatile3、Atomicinteger 1、synchronized 特点:原子性 用法: 1.普通方法,代码块——对象锁 2.静态方法——类锁。 2、volatile 特点:可见性,没有原子性 用法:不需要原子性的地方,每个线程只是使用一次这个值,那这个值就可以用volatile 用volatile修饰的变量,多线程每次都是获得最新值。 倘若没有vol...原创 2020-01-20 17:17:31 · 168 阅读 · 0 评论 -
1195. 交替打印字符串
目录1、用一个信号量,毫无关系的并发中,可以使用信号量充当一个流动的锁。最好用Atomicinteger类似于cas自旋 1、用一个信号量,毫无关系的并发中,可以使用信号量充当一个流动的锁。最好用Atomicinteger类似于cas自旋 编写一个可以从 1 到 n 输出代表这个数字的字符串的程序,但是: 如果这个数字可以被 3 整除,输出 “fizz”。 如果这个数字可以被 5 整除,输出 “b...原创 2020-01-20 17:03:40 · 274 阅读 · 0 评论 -
1226. 哲学家进餐
目录1、防止同时拿起一边的叉子,奇数左手先,偶数先右手先2、设置最多进餐人数为3。 5 个沉默寡言的哲学家围坐在圆桌前,每人面前一盘意面。叉子放在哲学家之间的桌面上。(5 个哲学家,5 根叉子) 所有的哲学家都只会在思考和进餐两种行为间交替。哲学家只有同时拿到左边和右边的叉子才能吃到面,而同一根叉子在同一时间只能被一个哲学家使用。每个哲学家吃完面后都需要把叉子放回桌面以供其他哲学家吃面。只要条件允...原创 2020-01-20 16:40:48 · 206 阅读 · 0 评论 -
1114. 按序打印
目录1、用信号量,acquire()大于0则执行2、用CountDownLatch,await()等于0则执行3、4、5、6、7、 1、用信号量,acquire()大于0则执行 release class Foo { private Semaphore first = new Semaphore(0); private Semaphore second = new Semaphor...原创 2020-01-19 20:06:45 · 200 阅读 · 0 评论