什么是多线程
如果在一个进程中同时运行了多个线程,用来完成不同的工作,则称之为“多线程”
多个线程交替占用cpu资源,而非真正的并行执行
多线程的好处
充分利用CPU资源
简化编程模型
带来良好的用户体验
使用线程的步骤
1.定义线程 ----2.创建线程对象------3.启动线程-----4.终止线程
实现Runnable接口创建线程
1.定义MyRunnble 类实现Runnable接口
2.实现run()方法,编写线程执行体
3.创建线程对象,调用start()方法启动线程
代码:
public class MyRunnable implements Runnable{
public void run(){
for(int i = 1;i <100;i++){
System.out.println{
Thread.surrentThread().getName()+":"+i);
}
}
}
public static void main(String[] args){
MyRunnable myrunnable = new MyRunnable();
Thread thread = new Thread(myrunnable);
thread.start();
}
}
比较两种创建线程的方式
1.继承Thread类
编写简单,可直接操作线程
适用于单继承
2.实现Runnable接口
避免单继承的局限性
便于共享资源
实现思路
1.创建线程类MyThread ,并继承Thread 类
2.重写Thread类中的run()方法,编写方法体
3.在测试类Test类中创建两个MyThread 类的线程对象
4.调用start()方法启动
5.运行程序,观察多个线程交替执行的结果
线程调度
更改线程的优先级
线程休眠
线程的强制运行
线程的礼让
暂停当前线程,允许其他具有相同优先级的线程运行机会
该线程处于就绪状态,不转为阻塞状态
只是提供一种可能,但是不能保证一定会实现礼让
public static void yield()
同步方法
多个并发线程访问同一资源的同步代码块时
线程安全的类型
常见的类型对比