Java Thread队列一直是我们需要掌握的代码。下面我们就基本思想:建立了一个队列,为每一个Java Thread队列保存了一个对象锁,保证按顺序执行。线程启动的时候,使随机的,但是执行代码是按顺序的。
创新互联建站专注于企业成都全网营销、网站重做改版、固安网站定制设计、自适应品牌网站建设、HTML5建站、商城系统网站开发、集团公司官网建设、外贸营销网站建设、高端网站制作、响应式网页设计等建站业务,价格优惠性价比高,为固安等各大城市提供网站开发制作服务。
- 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 = 0;
- boolean isFirst=true;
- while (i < 10) {
- Object obj=new Object();
- if(i>0){
- isFirst=false;
- ThreadTest.putObject(obj);
- }
- Thread t2 = new Thread2(isFirst,obj);
- Object obj2=new Object();
- ThreadTest.putObject(obj2);
- Thread t3 = new Thread3(obj2);
- t2.start();
- t3.start();
- i++;
- }
- }
- }
- /**
- * 线程2
- *
- * @author Harry.WANG
- *
- */
- class Thread2 extends Thread {
- private boolean isFirst=false;
- private Object obj;
- public Thread2(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(3000);//等待3秒,为了测试
- } catch (InterruptedException e) {
- e.printStackTrace();
- }
- System.out.println("停止"+this.getName()+"...");
- ThreadTest.notifyThread();
- }
- }
- class Thread3 extends Thread {
- private Object obj;
- public Thread3(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(3000);//等待3秒,为了测试
- } catch (InterruptedException e) {
- e.printStackTrace();
- }
- System.out.println("停止"+this.getName()+"...");
- ThreadTest.notifyThread();
- }
- }
以上就是对Java Thread队列的详细介绍。希望大家有所帮助。
网站题目:JavaThread队列详细代码的介绍
链接地址:http://www.shufengxianlan.com/qtweb/news1/506301.html
网站建设、网络推广公司-创新互联,是专注品牌与效果的网站制作,网络营销seo公司;服务项目有等
声明:本网站发布的内容(图片、视频和文字)以用户投稿、用户转载内容为主,如果涉及侵权请尽快告知,我们将会在第一时间删除。文章观点不代表本网站立场,如需处理请联系客服。电话:028-86922220;邮箱:631063699@qq.com。内容未经允许不得转载,或转载时需注明来源: 创新互联