欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

java基本线程机制

程序员文章站 2022-06-01 13:27:59
...

基本线程机制

方法一

实现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