1_创建线程有哪几种方式?
2_如何启动线程?
3_线程对象调用start()方法和调用run()方法的区别?
4_请简述线程的五个状态?
5_什么是线程优先级,它在线程调度中的作用?
6_join()方法和yield()方法的区别是什么?
1_方法1:继承Thread类;方法2:实现Runnable接口。
2_主线程自动启动,子线程通过start()方法启动。
3_调用start()方法会启动一个新的线程,并在新的线程中执行线程的run()方法。而直接调用run()方法只是在当前线程中顺序执行run()方法的代码,不会启动新的线程。通过调用start()方法启动线程可以实现多线程并发执行,而直接调用run()方法只能实现单线程顺序执行。
4_创建状态,就绪状态,阻塞状态,运行状态,死亡状态
5_线程优先级由1~10表示,1最低,默认优先级为5;优先级高的线程获得CPU资源的概率较大。
6_join()方法是使当前线程暂停执行,等待其他线程结束后再继续执行本线程;yield()方法是暂停当前线程,允许其他具有相同优先级的线程获得运行机会,该线程处于就绪状态,不转为阻塞状态。