![](https://img-blog.csdnimg.cn/20201014180756918.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
Concurrent
文章平均质量分 60
阿飞算法
这个作者很懒,什么都没留下…
展开
-
畅游多线程之H2O 生成
1117. H2O 生成方法1:SemaphoreSemaphore是一个计数信号量。从概念上将,Semaphore包含一组许可证。如果有需要的话,每个acquire()方法都会阻塞,直到获取一个可用的许可证。每个release()方法都会释放持有许可证的线程,并且归还Semaphore一个可用的许可证。然而,实际上并没有真实的许可证对象供线程使用,Semaphore只是对可用的数量进行管理维护总结:如果线程要访问一个资源就必须先获得信号量。如果信号量内部计数器大于0,信号量减1,然后允许共原创 2021-07-27 08:38:03 · 211 阅读 · 0 评论 -
畅游多线程之设计有限阻塞队列
1188 设计有限阻塞队列实现一个拥有如下方法的线程安全有限阻塞队列:BoundedBlockingQueue(int capacity) 构造方法初始化队列,其中capacity代表队列长度上限。void enqueue(int element) 在队首增加一个element. 如果队列满,调用线程被阻塞直到队列非满。int dequeue() 返回队尾元素并从队列中将其删除. 如果队列为空,调用线程被阻塞直到队列非空。int size() 返回当前队列元素个数。你的实现将会被多线程同时访问原创 2021-07-27 07:13:39 · 872 阅读 · 3 评论 -
畅游多线程之红绿灯路口
1279 红绿灯路口每条路在路口前都有一个红绿灯。红绿灯可以亮起红灯或绿灯。绿灯表示两个方向的车辆都可通过路口。红灯表示两个方向的车辆都不可以通过路口,必须等待绿灯亮起。两条路上的红绿灯不可以同时为绿灯。这意味着,当 A 路上的绿灯亮起时,B 路上的红灯会亮起;当 B 路上的绿灯亮起时,A 路上的红灯会亮起.开始时,A 路上的绿灯亮起,B 路上的红灯亮起。当一条路上的绿灯亮起时,所有车辆都可以从任意两个方向通过路口,直到另一条路上的绿灯亮起。不同路上的车辆不可以同时通过路口。给这个路口设原创 2021-07-26 17:02:14 · 851 阅读 · 0 评论 -
畅游多线程之打印零与奇偶数
1116. 打印零与奇偶数方法1:SemaphoreSemaphore是一个计数信号量。从概念上将,Semaphore包含一组许可证。如果有需要的话,每个acquire()方法都会阻塞,直到获取一个可用的许可证。每个release()方法都会释放持有许可证的线程,并且归还Semaphore一个可用的许可证。然而,实际上并没有真实的许可证对象供线程使用,Semaphore只是对可用的数量进行管理维护总结:如果线程要访问一个资源就必须先获得信号量。如果信号量内部计数器大于0,信号量减1,然后允许原创 2021-07-26 13:26:40 · 176 阅读 · 0 评论 -
畅游多线程之交替打印FooBar
1115. 交替打印FooBar方法1:SemaphoreSemaphore是一个计数信号量。从概念上将,Semaphore包含一组许可证。如果有需要的话,每个acquire()方法都会阻塞,直到获取一个可用的许可证。每个release()方法都会释放持有许可证的线程,并且归还Semaphore一个可用的许可证。然而,实际上并没有真实的许可证对象供线程使用,Semaphore只是对可用的数量进行管理维护总结:如果线程要访问一个资源就必须先获得信号量。如果信号量内部计数器大于0,信号量减1,然原创 2021-07-25 15:18:35 · 264 阅读 · 0 评论 -
畅游多线程问题之实战-顺序打印123
顺序打印123//按顺序打印 123 123 123//有这么一个多线程场景问题:有三个线程,线程1执行完成之后线程2执行,线程2执行完之后线程3执行,//线程3执行完成之后线程1执行,整体循环50次,写程序实现部分方法没有使用到三个线程,做个保留方法1:CountDownLatch /** * 多线程按顺序打印 123 123 123 */ static class _1st { public static void main(Strin原创 2021-07-24 10:45:57 · 926 阅读 · 0 评论 -
畅游多线程问题
畅游多线程问题之顺序打印原创 2021-07-23 15:05:57 · 116 阅读 · 0 评论 -
畅游多线程问题之顺序打印
1114. 按序打印方法1:synchronizedclass Foo { public Foo() { } private int signal = 1; private Object obj = new Object(); public void first(Runnable printFirst) throws InterruptedException { synchronized (obj) { while原创 2021-07-23 15:04:59 · 174 阅读 · 0 评论