多线程(9.24)

一、理解进程和线程
1.进程:应用程序执行实例独立的内存空间和系统资源
2.线程:cup调度和分派的基本单位,进程中执行运算的最小单位,可完成一个独立的顺序控制流程.

二、什么是多线程
如果在一个进程中同时运行了多个线程,用来完成不同的工作,则称之为"多线程".
多个线程交替占用cpu资源,而非真正的并行执行.
注意:java提供java.lang.Thread类支持多线程编程.

1.获取当前主线程的信息
//1.1获取当前的线程
Thread mainThread=Thread.currentThread();
mainThread.setName("主线程");
//1.2.获取线程的名称
String name=mainThread.getName();
System.out.println("主线程名称是:"+name);

三、实现多线程
1.在Java中创建多线程的两种方式

1.1继承java.lang.Thread类
a.创建线程类: 并指定执行的任务
public class MyThread1 extends Thread {
//重写run方法
public void run() { //子线程体
for (int i = 1; i <= 10; i++) {
System.out.println(i);
}
}

b.创建线程对象并启动:
//1.创建线程对象
MyThread1 thread1=new MyThread1();
//2.启动线程
thread1.start();

1.2实现runable接口实现多线程
a.定义线程任务类
public class MyThread2 implements Runnable {
@Override
public void run() { //线程执行体
for (int i = 1; i <=10; i++) {
System.out.println(i);
}
}
}

b.创建线程对象并启动:
public static void main(String[] args) {
//1.创建线程对象
//创建线程任务
MyThread2 task=new MyThread2();
Thread thread=new Thread(task);
//2.启动线程
thread.start();
}

四、理解线程的状态:
创建状态、就绪状态、运行状态、阻塞状态、死亡状态

五、了解线程调度方法:
线程对象.setPriority(1-10常量) 更改线程的优先级
线程对象.join(); 强制执行某线程
Thead.sleep(毫秒数); 休眠当前执行的线程
Thead.yield(); 礼让
线程对象.interrupt(); 中断线程
六、了解多线程共享数据引发的问题(并发问题)
引出关键字synchronized

你可能感兴趣的:(多线程(9.24))