java 多线程基础2

多线程(加入线程join)

thread.join(); 被.join()的线程优先执行

多线程(线程优先级Priority)

Thread.setPriority(1-10)线程默认优先级是5。线程优先级的范围是:1-10。线程优先级高仅仅表示线程获取的 CPU时间片的几率高,但是要在次数比较多,或者多次运行的时候才能看到比较好的效果。

多线程(守护线程setDaemon)

thread.setDaemon(bool)将该线程标记为守护线程(true)或用户线程(false)。 当正在运行的线程都是守护线程时,Java 虚拟机退出。 该方法必须在启动线程前调用。线程默认是用户线程 当用户线程都运行完毕 守护线程自动结束

多线程(礼让线程线程 yield)

Thread. yield():暂停当前正在执行的线程对象,并执行其他线程。让多个线程的执行更和谐,但是不能靠它保证一人一次。

public class ThreadYield extends Thread {
    @Override
    public void run() {
        for (int x = 0; x < 100; x++) {
            System.out.println(getName() + ":" + x);
            Thread.yield();
        }
    }

多线程的状态

1. 初始(NEW):新创建了一个线程对象,但还没有调用start()方法。
2. 运行(RUNNABLE):Java线程中将就绪(ready)和运行中(running)两种状态笼统的称为“运行”。
线程对象创建后,其他线程(比如main线程)调用了该对象的start()方法。该状态的线程位于可运行线程池中,等待被线程调度选中,获取CPU的使用权,此时处于就绪状态(ready)。就绪状态的线程在获得CPU时间片后变为运行中状态(running)。
3.阻塞(BLOCKED):表示线程阻塞于锁。
4.等待(WAITING):进入该状态的线程需要等待其他线程做出一些特定动作(通知或中断)。
5.超时等待(TIMED_WAITING):该状态不同于WAITING,它可以在指定的时间后自行返回。

6. 终止(TERMINATED):表示该线程已经执行完毕。

扫描二维码关注公众号,回复: 3643406 查看本文章

猜你喜欢

转载自blog.csdn.net/qq_25825923/article/details/82667993
今日推荐