第一步:什么是多线程
同一时间做了很多事情,边吃饭边玩手机
本质上大脑在同一时间只做了一件事情;;
要进行并发的操作,
对于普通的方法::是
第二种多线程的模式是:
第二步:进程
一个进程可以有多个线程:视频中有画面+声音+字幕
/总结:注意,线程开启不一定立即执行,dcPU调度执行
第三步:开始创建过程之继承Thread类
每次的结果还都不一样
//创建线程方式一:继承Thread类,重写run()方法,调用start开启线程
public class the_thread extends Thread{
@Override
public void run(){
// run()方法线程体 在这里编写自己想要并行执行的东西
for(int i=0;i<200;i++){
System.out.println("wo"+i);
}
}
public static void main(String[] args) {
// main()线程 主线程
//创建一个线程对象,
the_thread testThread1 = new the_thread();
//调用start()方法 开启线程即并行开始运行
testThread1.start();
//
//这里如果是run()方法,则是正常的顺序;
//testThread1.run(); 输出为:wowoninini
//
for(int i=0;i<200;i++){
System.out.println("ni"+i);
}
}
}
实用:::解释
第四步:开始创建之实现Runnable类
推荐使用:实现runnable类,因为创建一个对象(自己写的),可以多个Thread对象使用,即实现多个线程(Thread.start())
public class TestThread_Runnable implements Runnable {
@Override
public void run(){
// run()方法线程体 在这里编写自己想要并行执行的东西
for(int i=0;i<200;i++){
System.out.println("wo"+i);
}
}
public static void main(String[] args) {
// main()线程 主线程
//创建runnable接口的实现对象
TestThread_Runnable Runnable1=new TestThread_Runnable();
//创建线程对象,来开启我们的线程
Thread thread=new Thread(Runnable1);
thread.start();
//上面的两行相当于::
//new Thread(Runnable1).start();
for(int i=0;i<200;i++){
System.out.println("ni"+i);
}
}
}
例子说明
import javax.naming.Name;
//多个线程同时操作一个对象
//买火车票的例子
public class TheThread_Runnable_more implements Runnable {
private int tickNums=10;
@Override
public void run() {
while (true){
if(tickNums<=0){
break;
}
System.out.println(Thread.currentThread().getName()+"--》na di"+tickNums--+"票");
}
}
public static void main(String[] args) {
TheThread_Runnable_more test_Thread= new TheThread_Runnable_more();
// 可以给一个线程起名字
new Thread(test_Thread,"小明").start();
new Thread(test_Thread,"小李").start();
new Thread(test_Thread,"黄牛").start();
}
}