java多线程-基础
一, java多线程----线程与进程
进程: 程序(任务)的执行过程,拥有资源(共享内存,共享资源)和线程(一个或者多个,至少一个)。 例如:打开任务管理器,qq,chrome,都属于进程。
线程: 系统中最小的执行单元,同一进程中有多个线程,线程共享进程的资源。 例如:qq的聊天发送消息。
单线程:程序中只有一个线程,实际上主方法就是一个主线程。
多线程:程序中运行多个任务, 目的是更好的使用cpu资源。
二,java多线程----线程的实现
简单一句话来说,继承Thead类或者实现Runnable这个接口,然后重写里面的run方法。
继承Thead类
1 public class MyThead extends Thread{ 2 3 private String name; 4 public MyThead(String name) { 5 this.name = name; 6 } 7 @Override 8 public void run() { 9 for (int i = 0; i < 1000; i++) { 10 System.out.println(name+"------"+i); 11 } 12 } 13 }
实现Runnable接口
1 public class MyRunnable implements Runnable{ 2 3 private String name; 4 public MyRunnable(String name) { 5 this.name = name; 6 } 7 @Override 8 public void run() { 9 for (int i = 0; i < 1000; i++) { 10 System.out.println(name+"----"+i); 11 } 12 13 } 14 15 }
启动线程
1 public class TheadDemo { 2 3 public static void main(String[] args) { 4 MyThead t1 = new MyThead("t1"); 5 MyThead t2 = new MyThead("t2"); 6 7 t1.start(); 8 t2.start(); 9 10 MyRunnable r1 = new MyRunnable("r1"); 11 MyRunnable r2 = new MyRunnable("r2"); 12 13 Thread t3 = new Thread(r1); 14 Thread t4 = new Thread(r2); 15 16 t3.start(); 17 t4.start(); 18 } 19 }
三,java多线程----线程的状态
创建状态:创建多线程对象。
就绪状态: 调用start(),等待cpu调用。
运行状态: 执行run()。
阻塞状态:暂时停止执行,将资源交给其他线程使用。
终止状态:线程结束。
四,java多线程----常用的方法(thead类里面)
获取当前线程的对象 currentThread()
得到线程名称 getName()
判断线程是否运行 isAlive()
线程的强行运行 join() 例如:俩个线程t1,t2, 当在t1执行的时候,t2调用join()方法,t1暂停不执行,t2执行,执行完成后,释放资源,t1接着执行。
线程的休眠 sleep() 例如:t1每执行一次,等待5秒 t1.sleep(5000)
线程的礼让 yield() 例如:俩个线程t1,t2, 当在t1执行的时候,t1调用yield()方法,t1暂停不执行,t2执行,执行完成后,释放资源,t1接着执行。