线程底层机制就是切分CPU时间。是抢占式的。在使用线程时,CPU会为每个任务分配其占用时间。任务的执行仍是顺序执行。线程的优点就是代码不必知道它是运行在单个CPU还是多个CPU上,如果单个CPU上运行性能慢可以通过增加CPU数目来达到性能的提高。利用多线程技术可以丰富程序的功能和性能,系统的调度器来管理各个任务CPU的时间的分配。
Java中线程建立的步骤:
1.实现Runnable接口,填写任务代码;
2.利用Thread类开启任务,调用其start()方法——较为落后;
3.Executors的静态方法,如newSingleThreadExecutor()、newFixedThreadPool()等,接着调用其execcute()方法——较为常用,设计模式中的命令模式;
4.除了实现Runnable接口,还可以实现Callable接口,然后调用执行者的submit()方法,该方法有返回值,能够知道任务是否执行结束。
Java中线程的行为:
1.让步yield():通知调度器说自己执行任务差不多了,可以把时间给别的线程了。
2.休眠sleep():任务终止执行给定的时间;
3.设置优先级setPriorities()
:一般按照线程默认优先级,较少使用。
4.设置线程为后台线程setDeamon()
,该线程主要提供服务,当所有的非后台线程任务完成,系统的调度器会杀死后台线程。
这些方法都会影响任务的行为。