Object.wait(miliSec)/notify()/notifyAll() 线程调用wait()之后可以由notify()唤醒,如果指定了miliSec的话也可超时后自动唤醒。wait方法的调用会让当前线程放弃已经获取的object锁标志位,比如在同步代码块synchronized中调用wa ...
分类:
编程语言 时间:
2018-07-21 14:33:47
阅读次数:
212
import java.util.concurrent.ExecutorService; import java.util.concurrent.Executors; import java.util.concurrent.Semaphore; public class SemaphoreTest1... ...
分类:
编程语言 时间:
2018-07-19 13:35:42
阅读次数:
133
package com.test; import java.util.concurrent.CyclicBarrier; import java.util.concurrent.BrokenBarrierException; public class CyclicBarrierTest1 { pri... ...
分类:
编程语言 时间:
2018-07-19 11:54:51
阅读次数:
122
1,继承Thread类,重写run方法; 2,实现Runnable接口,重写run方法; 3,实现Callable接口通过FutureTask包装器来创建Thread线程; 4,通过线程池创建线程; ...
分类:
编程语言 时间:
2018-07-17 10:48:30
阅读次数:
192
java.util.concurrent包下的新类。 就是其中之一,是一个阻塞的线程安全的队列,底层采用链表实现。 LinkedBlockingQueue 构造的时候若没有指定大小,则默认大小为 ,当然也可以在 构造函数的参数中指定大小 ...
分类:
数据库 时间:
2018-07-16 20:29:13
阅读次数:
154
一、类相关属性 接口BlockingQueue<E>定义: 方法摘要 在所有方法对类中存储数据的数组做操作时,需要获取锁lock。 BlockingQueue 方法以四种形式出现,对于不能立即满足但可能在将来某一时刻可以满足的操作,这四种形式的处理方式不同:第一种是抛出一个异常,第二种是返回一个特殊 ...
分类:
编程语言 时间:
2018-07-16 11:35:08
阅读次数:
208
Executor ExecutorService ExecutorService相比Executor多了实现执行Callable多线程的方法,以及提供了具有返回值的执行方法 也可以传入Runnable对象并设置执行完成返回值 执行线程集合 invokeAny()方法与invokeAll()区别在于i ...
分类:
编程语言 时间:
2018-07-16 11:24:23
阅读次数:
153
Exchanger可以在对中对元素进行配对和交换的线程的同步点。每个线程将条目上的某个方法呈现给 exchange 方法,与伙伴线程进行匹配,并且在返回时接收其伙伴的对象。Exchanger 可能被视为 SynchronousQueue 的双向形式。Exchanger 可能在应用程序(比如遗传算法和 ...
分类:
编程语言 时间:
2018-07-16 11:16:54
阅读次数:
168
/*文章中用到的代码只是一部分,需要源码的可通过邮箱联系我 1978702969@qq.com*/ 前几天用多线程实现了创建小球并移动,想到大鱼吃小鱼,便突发奇想要写一个大球吃小球。首先第一步自然是先把界面弄好啦 界面写好后想想要怎么做呢?既然是大球吃小球还利用线程,那肯定需要一个队列,然后呢?既然 ...
分类:
编程语言 时间:
2018-07-15 21:28:01
阅读次数:
682
final和static关键字 final关键字 1.final关键字在单线程中的特点: 1)final修饰的静态成员:必须在进行显示初始化或静态代码块赋值,并且仅能赋值一次。 2)final修饰的类成员变量,可以在三个地方进行赋值:显示初始化、构造代码块和构造方法,并且仅能赋值一次。 3)fina ...
分类:
编程语言 时间:
2018-07-15 19:31:42
阅读次数:
136