您的位置:首页 > 编程语言 > Java开发

java基本线程机制

2017-10-12 12:54 246 查看

基本线程机制

方法一

实现
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
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  java 多线程