| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 1947 人关注过本帖
标题:2个线程输出12A34B.....5152Z。如何控制顺序???
只看楼主 加入收藏
渐渐鱼
Rank: 1
等 级:新手上路
帖 子:80
专家分:0
注 册:2018-5-11
结帖率:90%
收藏
已结贴  问题点数:20 回复次数:1 
2个线程输出12A34B.....5152Z。如何控制顺序???
程序代码:
public class Link_Thread
{
    public static void main(String []args)
    {
        Object obj = new Object();
        Shuzi x1 = new Shuzi(obj);
        Zimu x2= new Zimu(obj);
        Thread thread1 = new Thread(x1);
        Thread thread2 = new Thread(x2);
        thread1.start();
        thread2.start();
    }
}

class Shuzi implements Runnable
{
    private Object obj;
    public Shuzi(Object obj)
    {
        this.obj=obj;
    }
    public void run()
    {
        synchronized(obj)
        {
            for(int i=1;i<53;i++)
            {
                System.out.print(i);
                if(i%2==0)
                {
                    obj.notifyAll();
                    try 
                    {
                    obj.wait();
                    }
                    catch (InterruptedException e)
                    {e.printStackTrace();}
                 }
             }
        }
    }
}

class Zimu implements Runnable
{
    private Object obj;
    public Zimu(Object obj)
    {
        this.obj=obj;
    }
    public void run()
    {
        synchronized(obj)
        {
            for(int i=0;i<26;i++)
                {
                   System.out.print((char)(i+'A'));
                   obj.notifyAll();
                   try 
                  {
                     obj.wait();
                  }
                  catch (InterruptedException e)
                    {e.printStackTrace();}
                }
               
        }
    }
    
}


代码实现了输出
12A34B.....
但在执行的过程中也会出现A12B34...这样的情况。
那么,能否固定一个顺序呢?
搜索更多相关主题的帖子: public Thread Object obj new 
2018-09-14 10:03
幻紫灵心
Rank: 11Rank: 11Rank: 11Rank: 11
来 自:山咔咔里面
等 级:贵宾
威 望:53
帖 子:396
专家分:2640
注 册:2018-3-30
收藏
得分:20 
你可以让线程一二在开始执行的时候间隔几十毫秒,这样就不会错了。
而且你的代码正常执行最后不会结束线程,在输出 z 之后就永远wait了。

saber,别哭.
2018-09-14 16:03
快速回复:2个线程输出12A34B.....5152Z。如何控制顺序???
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.044645 second(s), 8 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved