Java多线程一

什么是线程?

线程(Thread)是一个任务从头到尾的执行流,可以把线程想象成程序中语句的顺序执行过程。

一个程序往往需要同时完成多个任务,比如浏览器既要显示页面,还要同时下载图片,这种并发执行多个任务的技术被称为多任务(multitasking)。线程提供了运行一个任务的机制,程序要并发执行多个任务就需要启动多个线程。

什么是任务?

Java中一个任务(Task)就是实现了Runnable接口的一个实例, 这个接口只包含一个run方法。

定义一个任务类:

   1: public class TaskClass implements Runnable
   2: {
   3:     public TaskClass()
   4:     {
   5:     }
   6:     
   7:     public void run()
   8:     {
   9:        ... 
  10:     }
  11: }

任务必须在线程中执行,线程为任务的执行提供了方便:

   1: TaskClass task = new TaskClass();
   2: Thread thread = new Thread(task);
   3: thread.start();

注意: Thread类本身也实现了Runnable接口,可以通过定义一个Thread的扩展类,并实现run方法,然后在客户端中直接调用start方法来启动线程。但并不推荐通过这种方式来实现多任务,因为这把任务和运行任务的机制混在一起,反而使结构不清晰。

Thread类及其方法

image

yield()方法:此方法使线程让出CPU,让线程调度程序选择其他线程运行

sleep(long mills)方法:此方法也能使线程让出CPU并进入睡眠状态,休眠指定的时间后该线程会恢复执行。

join()方法:此方法可以强制一个线程等待另一个线程执行完成。

setPriority(int p)方法:此方法可以设置线程的优先级,优先级范围是从1-10的数字,JVM会选择当前最高优先级的线程执行。

原文地址:https://www.cnblogs.com/fangyaohua/p/3213507.html