用得着这么麻烦吗?
直接A.run();
B.run();
C.run();
D.run();
E.run();不就好了?再多点就加个循环。
for (Thread i:threads){
   i.run();
}
不要学会了锤子的用法,就看什么都像钉子。

解决方案 »

  1.   


    用得着这么麻烦吗?
    直接A.run();
    B.run();
    C.run();
    D.run();
    E.run();不就好了?再多点就加个循环。
    for (Thread i:threads){
       i.run();
    }
    不要学会了锤子的用法,就看什么都像钉子。
    看清楚楼主的意思,是依次执行,执行完一个再执行下一个
    run方法不会阻塞,虽然是依次调用,但是不保证依次执行
    使用信号量吧,google一下,或参考Core Java I 的最后一章(这章专门将线程,看完之后对线程的理解就差不多了)
      

  2.   


    用得着这么麻烦吗?
    直接A.run();
    B.run();
    C.run();
    D.run();
    E.run();不就好了?再多点就加个循环。
    for (Thread i:threads){
       i.run();
    }
    不要学会了锤子的用法,就看什么都像钉子。
    看清楚楼主的意思,是依次执行,执行完一个再执行下一个
    run方法不会阻塞,虽然是依次调用,但是不保证依次执行
    使用信号量吧,google一下,或参考Core Java I 的最后一章(这章专门将线程,看完之后对线程的理解就差不多了)看清楚点 run() 
    不是 start()只要这个run() 不扔异常出来,就是顺序执行的。而且楼主对异常处理也没提要求。拜托你看一下Thead.java的源代码好吗?
    不要自以为是。顺便说一下,学java最好不要看教科书。
    我几乎不看任何java教科书,看Java Docs,不明白的话看JDK 源码,
    再不明白的话,看Java Lang Spec 和 VM Spec 
    还不明白,好吧你不用学了。
      

  3.   


    用得着这么麻烦吗?
    直接A.run();
    B.run();
    C.run();
    D.run();
    E.run();不就好了?再多点就加个循环。
    for (Thread i:threads){
       i.run();
    }
    不要学会了锤子的用法,就看什么都像钉子。
    看清楚楼主的意思,是依次执行,执行完一个再执行下一个
    run方法不会阻塞,虽然是依次调用,但是不保证依次执行
    使用信号量吧,google一下,或参考Core Java I 的最后一章(这章专门将线程,看完之后对线程的理解就差不多了)看清楚点 run() 
    不是 start()只要这个run() 不扔异常出来,就是顺序执行的。而且楼主对异常处理也没提要求。拜托你看一下Thead.java的源代码好吗?
    不要自以为是。顺便说一下,学java最好不要看教科书。
    我几乎不看任何java教科书,看Java Docs,不明白的话看JDK 源码,
    再不明白的话,看Java Lang Spec 和 VM Spec 
    还不明白,好吧你不用学了。

    的确我看错了,我承认,不过我没有任何讽刺你的意思
    至于你后面说的那些,好的回复是:好的,听你的,我不学了,呵呵
      

  4.   

    同问~~~
    这样一来,单线程就全部搞定了~
    楼主想问的意思可能是.....楼主可能不知道jion()。楼主需要的答案可能是:A.start();
    B.start();
    A.jion();
    B.jion();
      

  5.   

    单线程的东西就行如果一定要多线程,那么加sem。
      

  6.   

    多线程最大特点就是并发了,串行执行,就直接run()方法,不过这样就不属于多线程了,而是简单的成员方法调用。
      

  7.   

    使用线程池,设置corePoolSize 为1,能达到你的要求
      

  8.   


    用得着这么麻烦吗?
    直接A.run();
    B.run();
    C.run();
    D.run();
    E.run();不就好了?再多点就加个循环。
    for (Thread i:threads){
       i.run();
    }
    不要学会了锤子的用法,就看什么都像钉子。
    看清楚楼主的意思,是依次执行,执行完一个再执行下一个
    run方法不会阻塞,虽然是依次调用,但是不保证依次执行
    使用信号量吧,google一下,或参考Core Java I 的最后一章(这章专门将线程,看完之后对线程的理解就差不多了)看清楚点 run() 
    不是 start()只要这个run() 不扔异常出来,就是顺序执行的。而且楼主对异常处理也没提要求。拜托你看一下Thead.java的源代码好吗?
    不要自以为是。顺便说一下,学java最好不要看教科书。
    我几乎不看任何java教科书,看Java Docs,不明白的话看JDK 源码,
    再不明白的话,看Java Lang Spec 和 VM Spec 
    还不明白,好吧你不用学了。

    你好,我看了你的说明后,觉得你的回答不对,因为如果你调用run函数,在主函数里面不停的执行run函数,那么后面的代码就无法同时执行了,这就没有线程的意义了,你觉得了?
      

  9.   


    用得着这么麻烦吗?
    直接A.run();
    B.run();
    C.run();
    D.run();
    E.run();不就好了?再多点就加个循环。
    for (Thread i:threads){
       i.run();
    }
    不要学会了锤子的用法,就看什么都像钉子。
    看清楚楼主的意思,是依次执行,执行完一个再执行下一个
    run方法不会阻塞,虽然是依次调用,但是不保证依次执行
    使用信号量吧,google一下,或参考Core Java I 的最后一章(这章专门将线程,看完之后对线程的理解就差不多了)看清楚点 run() 
    不是 start()只要这个run() 不扔异常出来,就是顺序执行的。而且楼主对异常处理也没提要求。拜托你看一下Thead.java的源代码好吗?
    不要自以为是。顺便说一下,学java最好不要看教科书。
    我几乎不看任何java教科书,看Java Docs,不明白的话看JDK 源码,
    再不明白的话,看Java Lang Spec 和 VM Spec 
    还不明白,好吧你不用学了。

    你好,我看了你的说明后,觉得你的回答不对,因为如果你调用run函数,在主函数里面不停的执行run函数,那么后面的代码就无法同时执行了,这就没有线程的意义了,你觉得了?Hi,
    我同意你的看法,循环调用5次run,结果是一个线程都没有启动,总在主线程中运行。不论楼主的需求是否合理,楼上的答案不满足要求。
    实现楼主的需求,其实方法挺多的,楼上的几位都提到了,这里推荐http://www.ibm.com/developerworks/cn/java/j-lo-concurrent-frmk/文章,给楼主一点思路。那位回答问题的同学口气太大,不看相关书籍作为自己的垫脚石,就能够读懂并且理解源代码?读不懂源代码就判刑不用学习了?源代码的精髓可不是只懂得语法的人能够理解的。先学习怎么做,再想想为什么。基础书籍铺路,源码扩展阅读,达到事倍功半的效果,这样也是学习方法之一。当然如果像那位同学一样有慧根,那真心不用听我废话了。
      

  10.   


    用得着这么麻烦吗?
    直接A.run();
    B.run();
    C.run();
    D.run();
    E.run();不就好了?再多点就加个循环。
    for (Thread i:threads){
       i.run();
    }
    不要学会了锤子的用法,就看什么都像钉子。
    看清楚楼主的意思,是依次执行,执行完一个再执行下一个
    run方法不会阻塞,虽然是依次调用,但是不保证依次执行
    使用信号量吧,google一下,或参考Core Java I 的最后一章(这章专门将线程,看完之后对线程的理解就差不多了)看清楚点 run() 
    不是 start()只要这个run() 不扔异常出来,就是顺序执行的。而且楼主对异常处理也没提要求。拜托你看一下Thead.java的源代码好吗?
    不要自以为是。顺便说一下,学java最好不要看教科书。
    我几乎不看任何java教科书,看Java Docs,不明白的话看JDK 源码,
    再不明白的话,看Java Lang Spec 和 VM Spec 
    还不明白,好吧你不用学了。

    你好,我看了你的说明后,觉得你的回答不对,因为如果你调用run函数,在主函数里面不停的执行run函数,那么后面的代码就无法同时执行了,这就没有线程的意义了,你觉得了?
    楼主也没说调用者要跟另5个Thread并行。
    即使楼主有这个需求,那也只需要另起一个线程,把for循环装进去即可。麻烦你看看concurret 包里的源码好吗?这个包提供如此丰富的作业调度机制,代码非常精妙,
    可以看到作者从java代码层面深入考虑到CPU层面。
    用来干楼主这么简单的需求,是不是杀鸡用牛刀,你自己判断。concurret 包被这样滥用 Doug Lea 大概要哭了。
      

  11.   


    用得着这么麻烦吗?
    直接A.run();
    B.run();
    C.run();
    D.run();
    E.run();不就好了?再多点就加个循环。
    for (Thread i:threads){
       i.run();
    }
    不要学会了锤子的用法,就看什么都像钉子。
    看清楚楼主的意思,是依次执行,执行完一个再执行下一个
    run方法不会阻塞,虽然是依次调用,但是不保证依次执行
    使用信号量吧,google一下,或参考Core Java I 的最后一章(这章专门将线程,看完之后对线程的理解就差不多了)看清楚点 run() 
    不是 start()只要这个run() 不扔异常出来,就是顺序执行的。而且楼主对异常处理也没提要求。拜托你看一下Thead.java的源代码好吗?
    不要自以为是。顺便说一下,学java最好不要看教科书。
    我几乎不看任何java教科书,看Java Docs,不明白的话看JDK 源码,
    再不明白的话,看Java Lang Spec 和 VM Spec 
    还不明白,好吧你不用学了。

    你好,我看了你的说明后,觉得你的回答不对,因为如果你调用run函数,在主函数里面不停的执行run函数,那么后面的代码就无法同时执行了,这就没有线程的意义了,你觉得了?Hi,
    我同意你的看法,循环调用5次run,结果是一个线程都没有启动,总在主线程中运行。不论楼主的需求是否合理,楼上的答案不满足要求。
    实现楼主的需求,其实方法挺多的,楼上的几位都提到了,这里推荐http://www.ibm.com/developerworks/cn/java/j-lo-concurrent-frmk/文章,给楼主一点思路。那位回答问题的同学口气太大,不看相关书籍作为自己的垫脚石,就能够读懂并且理解源代码?读不懂源代码就判刑不用学习了?源代码的精髓可不是只懂得语法的人能够理解的。先学习怎么做,再想想为什么。基础书籍铺路,源码扩展阅读,达到事倍功半的效果,这样也是学习方法之一。当然如果像那位同学一样有慧根,那真心不用听我废话了。
    不需要线程的地方去启动线程,你知道意味着什么?年轻人,基础书籍跟Java一点关系也没用好吧。
    想当年我也是买了一大堆所谓热门被很多人推荐的JAVA书,现在那些书还在我书架上,
    每本书我倒是都看了,但每本书我最多只看了其中的5%。
    看完的只有一本讲java语法的小册子,不到100页。基础是什么?是操作系统,是计算机组成原理,是数据结构,是算法导论,是数学。
    跟java一毛钱关系都没有。看所谓java教材纯属浪费时间,翻译错误百出不说,
    而且一点点简单的事情能翻来覆去讲半天,把读者当小白教,
    外国教材作者有这个倾向,所以动不动一本书600多页,里面大多是废话。基础扎实的话,看Doc,看源码学得绝对比看书快,不明白的地方动动手,有个项目做的话最好。
    Lang Spec和VM Spec是终极解释,特别是VM Spec看完后绝对醍醐灌顶。基础不扎实的话,去上大学。
      

  12.   


    用得着这么麻烦吗?
    直接A.run();
    B.run();
    C.run();
    D.run();
    E.run();不就好了?再多点就加个循环。
    for (Thread i:threads){
       i.run();
    }
    不要学会了锤子的用法,就看什么都像钉子。
    看清楚楼主的意思,是依次执行,执行完一个再执行下一个
    run方法不会阻塞,虽然是依次调用,但是不保证依次执行
    使用信号量吧,google一下,或参考Core Java I 的最后一章(这章专门将线程,看完之后对线程的理解就差不多了)看清楚点 run() 
    不是 start()只要这个run() 不扔异常出来,就是顺序执行的。而且楼主对异常处理也没提要求。拜托你看一下Thead.java的源代码好吗?
    不要自以为是。顺便说一下,学java最好不要看教科书。
    我几乎不看任何java教科书,看Java Docs,不明白的话看JDK 源码,
    再不明白的话,看Java Lang Spec 和 VM Spec 
    还不明白,好吧你不用学了。

    你好,我看了你的说明后,觉得你的回答不对,因为如果你调用run函数,在主函数里面不停的执行run函数,那么后面的代码就无法同时执行了,这就没有线程的意义了,你觉得了?Hi,
    我同意你的看法,循环调用5次run,结果是一个线程都没有启动,总在主线程中运行。不论楼主的需求是否合理,楼上的答案不满足要求。
    实现楼主的需求,其实方法挺多的,楼上的几位都提到了,这里推荐http://www.ibm.com/developerworks/cn/java/j-lo-concurrent-frmk/文章,给楼主一点思路。那位回答问题的同学口气太大,不看相关书籍作为自己的垫脚石,就能够读懂并且理解源代码?读不懂源代码就判刑不用学习了?源代码的精髓可不是只懂得语法的人能够理解的。先学习怎么做,再想想为什么。基础书籍铺路,源码扩展阅读,达到事倍功半的效果,这样也是学习方法之一。当然如果像那位同学一样有慧根,那真心不用听我废话了。
    不需要线程的地方去启动线程,你知道意味着什么?年轻人,基础书籍跟Java一点关系也没用好吧。
    想当年我也是买了一大堆所谓热门被很多人推荐的JAVA书,现在那些书还在我书架上,
    每本书我倒是都看了,但每本书我最多只看了其中的5%。
    看完的只有一本讲java语法的小册子,不到100页。基础是什么?是操作系统,是计算机组成原理,是数据结构,是算法导论,是数学。
    跟java一毛钱关系都没有。看所谓java教材纯属浪费时间,翻译错误百出不说,
    而且一点点简单的事情能翻来覆去讲半天,把读者当小白教,
    外国教材作者有这个倾向,所以动不动一本书600多页,里面大多是废话。基础扎实的话,看Doc,看源码学得绝对比看书快,不明白的地方动动手,有个项目做的话最好。
    Lang Spec和VM Spec是终极解释,特别是VM Spec看完后绝对醍醐灌顶。基础不扎实的话,去上大学。
    感谢老先生回复我的帖子。出于对您的尊重,我认真的回复您。
      

  13.   

    1.弄个线程池,设上池大小为1,把5个线程放到线程池里执行去吧.
    2.更简单的看代码public SeqThread extends Thread{
    public void run(){
      a.run();
      b.run();
      c.run();
      d.run();
      e.run();
    }
    }
      

  14.   


    用得着这么麻烦吗?
    直接A.run();
    B.run();
    C.run();
    D.run();
    E.run();不就好了?再多点就加个循环。
    for (Thread i:threads){
       i.run();
    }
    不要学会了锤子的用法,就看什么都像钉子。
    看清楚楼主的意思,是依次执行,执行完一个再执行下一个
    run方法不会阻塞,虽然是依次调用,但是不保证依次执行
    使用信号量吧,google一下,或参考Core Java I 的最后一章(这章专门将线程,看完之后对线程的理解就差不多了)看清楚点 run() 
    不是 start()只要这个run() 不扔异常出来,就是顺序执行的。而且楼主对异常处理也没提要求。拜托你看一下Thead.java的源代码好吗?
    不要自以为是。顺便说一下,学java最好不要看教科书。
    我几乎不看任何java教科书,看Java Docs,不明白的话看JDK 源码,
    再不明白的话,看Java Lang Spec 和 VM Spec 
    还不明白,好吧你不用学了。

    你好,我看了你的说明后,觉得你的回答不对,因为如果你调用run函数,在主函数里面不停的执行run函数,那么后面的代码就无法同时执行了,这就没有线程的意义了,你觉得了?Hi,
    我同意你的看法,循环调用5次run,结果是一个线程都没有启动,总在主线程中运行。不论楼主的需求是否合理,楼上的答案不满足要求。
    实现楼主的需求,其实方法挺多的,楼上的几位都提到了,这里推荐http://www.ibm.com/developerworks/cn/java/j-lo-concurrent-frmk/文章,给楼主一点思路。那位回答问题的同学口气太大,不看相关书籍作为自己的垫脚石,就能够读懂并且理解源代码?读不懂源代码就判刑不用学习了?源代码的精髓可不是只懂得语法的人能够理解的。先学习怎么做,再想想为什么。基础书籍铺路,源码扩展阅读,达到事倍功半的效果,这样也是学习方法之一。当然如果像那位同学一样有慧根,那真心不用听我废话了。
    不需要线程的地方去启动线程,你知道意味着什么?年轻人,基础书籍跟Java一点关系也没用好吧。
    想当年我也是买了一大堆所谓热门被很多人推荐的JAVA书,现在那些书还在我书架上,
    每本书我倒是都看了,但每本书我最多只看了其中的5%。
    看完的只有一本讲java语法的小册子,不到100页。基础是什么?是操作系统,是计算机组成原理,是数据结构,是算法导论,是数学。
    跟java一毛钱关系都没有。看所谓java教材纯属浪费时间,翻译错误百出不说,
    而且一点点简单的事情能翻来覆去讲半天,把读者当小白教,
    外国教材作者有这个倾向,所以动不动一本书600多页,里面大多是废话。基础扎实的话,看Doc,看源码学得绝对比看书快,不明白的地方动动手,有个项目做的话最好。
    Lang Spec和VM Spec是终极解释,特别是VM Spec看完后绝对醍醐灌顶。基础不扎实的话,去上大学。这种讨论看起来真是受益匪浅 哈哈 对我这种新手来说 真的很好,谢谢!
      

  15.   


    用得着这么麻烦吗?
    直接A.run();
    B.run();
    C.run();
    D.run();
    E.run();不就好了?再多点就加个循环。
    for (Thread i:threads){
       i.run();
    }
    不要学会了锤子的用法,就看什么都像钉子。
    看清楚楼主的意思,是依次执行,执行完一个再执行下一个
    run方法不会阻塞,虽然是依次调用,但是不保证依次执行
    使用信号量吧,google一下,或参考Core Java I 的最后一章(这章专门将线程,看完之后对线程的理解就差不多了)看清楚点 run() 
    不是 start()只要这个run() 不扔异常出来,就是顺序执行的。而且楼主对异常处理也没提要求。拜托你看一下Thead.java的源代码好吗?
    不要自以为是。顺便说一下,学java最好不要看教科书。
    我几乎不看任何java教科书,看Java Docs,不明白的话看JDK 源码,
    再不明白的话,看Java Lang Spec 和 VM Spec 
    还不明白,好吧你不用学了。

    你好,我看了你的说明后,觉得你的回答不对,因为如果你调用run函数,在主函数里面不停的执行run函数,那么后面的代码就无法同时执行了,这就没有线程的意义了,你觉得了?Hi,
    我同意你的看法,循环调用5次run,结果是一个线程都没有启动,总在主线程中运行。不论楼主的需求是否合理,楼上的答案不满足要求。
    实现楼主的需求,其实方法挺多的,楼上的几位都提到了,这里推荐http://www.ibm.com/developerworks/cn/java/j-lo-concurrent-frmk/文章,给楼主一点思路。那位回答问题的同学口气太大,不看相关书籍作为自己的垫脚石,就能够读懂并且理解源代码?读不懂源代码就判刑不用学习了?源代码的精髓可不是只懂得语法的人能够理解的。先学习怎么做,再想想为什么。基础书籍铺路,源码扩展阅读,达到事倍功半的效果,这样也是学习方法之一。当然如果像那位同学一样有慧根,那真心不用听我废话了。
    不需要线程的地方去启动线程,你知道意味着什么?年轻人,基础书籍跟Java一点关系也没用好吧。
    想当年我也是买了一大堆所谓热门被很多人推荐的JAVA书,现在那些书还在我书架上,
    每本书我倒是都看了,但每本书我最多只看了其中的5%。
    看完的只有一本讲java语法的小册子,不到100页。基础是什么?是操作系统,是计算机组成原理,是数据结构,是算法导论,是数学。
    跟java一毛钱关系都没有。看所谓java教材纯属浪费时间,翻译错误百出不说,
    而且一点点简单的事情能翻来覆去讲半天,把读者当小白教,
    外国教材作者有这个倾向,所以动不动一本书600多页,里面大多是废话。基础扎实的话,看Doc,看源码学得绝对比看书快,不明白的地方动动手,有个项目做的话最好。
    Lang Spec和VM Spec是终极解释,特别是VM Spec看完后绝对醍醐灌顶。基础不扎实的话,去上大学。
    感谢老先生回复我的帖子。出于对您的尊重,我认真的回复您。