java基本线程机制

基本线程机制

方法一

实现Runnable接口,编写run()方法,在里面描述了要做的事。

class A implements Runnable{
    public void run(){
        // 编写任务脚本
    }
}

注意:
如果在main()方法里直接调用run()方法,
它不由单独的线程驱动,而是分配给运行main()方法的那个线程,
意味着如果多个实例依次调用run()方法,那它们依然是顺序执行的。

A a1 = new A();
A a2 = new A();
a1.run();
a2.run();

因此我们把Runnable对象作为参数,实例化一个Thread对象,通过Thread来驱动它。

Thread t1 = new Thread(new A());
Thread t2 = new Thread(new A());
t1.start();
t2.start();

方法二

继承Thread类,重写run()方法。

class A extends Thread{
    public void run(){
        // 编写任务脚本
    }
}

然后调用它从Thread中继承来的start()方法。

A a1 = new A();
A a2 = new A();
a1.start();
a2.start();

我们通常推荐使用方法一,相比方法二,它有以下优势:

  • 避免Java只能继承一个类的局限;
  • run()中的代码可以被多个线程共享,代码和数据相互独立;
  • 适合多个相同代码的线程处理同一个资源的情况。

线程优先级

Java中每个线程都有一个优先级,决定了OS对线程的调度顺序

最小 MIN_PRIORITY = 1
默认 NORM_PRIORITY = 5
最大 MAX_PRIORITY = 10

优先级大的线程优先获得CPU分配,同等级的线程竞争CPU。




参考:http://blog.csdn.net/ns_code/article/details/17161237

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值