十年网站开发经验 + 多家企业客户 + 靠谱的建站团队
量身定制 + 运营维护+专业推广+无忧售后,网站问题一站解决
Java Thread队列一直是我们需要掌握的代码 下面我们就基本思想 建立了一个队列 为每一个Java Thread队列保存了一个对象锁 保证按顺序执行 线程启动的时候 使随机的 但梁桐运是执行代码是按顺序的
创新互联建站坚持“要么做到,要么别承诺”的工作理念,服务领域包括:成都网站建设、做网站、企业官网、英文网站、手机端网站、网站推广等服务,满足客户于互联网时代的松江网站设计、移动媒体设计的需求,帮助企业找到有效的互联网解决方案。努力成为您成熟可靠的网络建设合作伙伴!
import java util LinkedList;
import java util Queue;
public class ThreadTest {
private static Queue qThread=new LinkedList();//线程同步对象队列
public static synchronized void putObject(Object t){
qThread offer(t);
}
public static synchronized Object getObject(){
return qThread poll();
}
public static void waitThread(Object t) throws InterruptedException{
synchronized(t){
t wait();
}
}
public static void notifyThread(){
Object obj=ThreadTest getObject();
synchronized(obj){
obj notify();
}
}
public static void main(String[] args) throws InterruptedException {
int i = ;
boolean isFirst=true;
while (i ) {
Object obj=new Object();
if(i ){
isFirst=false;
ThreadTest putObject(obj);
}
Thread t = new Thread (isFirst obj);
Object obj =new Object();
ThreadTest putObject(obj );
Thread t = new Thread (obj );
t start();
t start();
i++;
}
}
}
/**
* 线程
橡梁 *
* @author Harry WANG
*
*/
class Thread extends Thread {
private boolean isFirst=false;
private Object obj;
public Thread (boolean f Object obj){
this isFirst=f;
this obj=obj;
}
@Override
public void run() {
if(!this isFirst){
System out println(this getName()+ 等待 );
try{
ThreadTest waitThread(obj);
}catch(InterruptedException e){
e printStackTrace();
}
}
System out println( 启动 +this getName()+ );
try {
sleep( );//等待 秒 为了测试
} catch (InterruptedException e) {
轮租 e printStackTrace();
}
System out println( 停止 +this getName()+ );
ThreadTest notifyThread();
}
}
class Thread extends Thread {
private Object obj;
public Thread (Object obj){
this obj=obj;
}
@Override
public void run() {
System out println(this getName()+ 等待 );
try{
ThreadTest waitThread(obj);
}catch(InterruptedException e){
e printStackTrace();
}
System out println( 启动 +this getName()+ );
try {
sleep( );//等待 秒 为了测试
} catch (InterruptedException e) {
e printStackTrace();
}
System out println( 停止 +this getName()+ );
ThreadTest notifyThread();
}
}
lishixinzhi/Article/program/Java/hx/201311/27018