• 软件测试技术
  • 软件测试博客
  • 软件测试视频
  • 开源软件测试技术
  • 软件测试论坛
  • 软件测试沙龙
  • 软件测试资料下载
  • 软件测试杂志
  • 软件测试人才招聘
    暂时没有公告

字号: | 推荐给好友 上一篇 | 下一篇

多线程Thread Runable

发布: 2008-6-11 12:02 | 作者: 不详 | 来源: 希赛网 | 查看: 163次 | 进入软件测试论坛讨论

领测软件测试网

  1.3 线程的优先级

  多个线程的执行是有一定的优先级别的,对于下面这个例子:

public class RunnablePotato implements Runnable {

    public void run() {

        while (true)

            System.out.println(Thread.currentThread().getName());

    }}

public class PotatoThreadTester {

    public static void main(String argv[]) {

        RunnablePotato aRP = new RunnablePotato();

        Thread T1 = new Thread(aRP, "one potato");

        Thread T2 = new Thread(aRP, "two potato");

        T1.start();

        T2.start();

    }}

  对于非抢占式的系统,上例中的第一个线程会一直运行,第二个线程没有机会运行;对于抢占式的系统,这二人线程会交替运行。

  为了让多线程在非抢占式中运行,最好在run方法中加入以下语句:

Thread.yield()

public void run() {

        while (true)

            System.out.println(Thread.currentThread().getName());

            Thread.yield()

    }

Thread.yield会将当前线程暂时让位一小段时间,让其它的线程有机会运行,过了这段时间后,该线程继承运行。上述功能也可以用Thread.sleep()方法实现。

文章来源于领测软件测试网 https://www.ltesting.net/

43/4<1234>

关于领测软件测试网 | 领测软件测试网合作伙伴 | 广告服务 | 投稿指南 | 联系我们 | 网站地图 | 友情链接
版权所有(C) 2003-2010 TestAge(领测软件测试网)|领测国际科技(北京)有限公司|软件测试工程师培训网 All Rights Reserved
北京市海淀区中关村南大街9号北京理工科技大厦1402室 京ICP备10010545号-5
技术支持和业务联系:info@testage.com.cn 电话:010-51297073

软件测试 | 领测国际ISTQBISTQB官网TMMiTMMi认证国际软件测试工程师认证领测软件测试网