java基础---多线程
1.并发与并行
并发:指两个或多个事件在同一时间段内发生
并行:指两个或多个事件在同一时刻发生(同时发生)
2.线程与进程

线程是进程的执行单元,一个进程可能有多个线程

3.多线程的创建方法:
方法一:
(1)创建一个Thread类的子类
(2)在Thread类的子类中重写Thread中的run 方法,设置线程任务(开启线程要做什么?)
(3)创建Thread类的子类对象
(4)调用Thread类的方法start(),开启新的线程执行run方法
public class MyThread extends Thread{ @Override public void run() { for (int i = 0; i <5 ; i++) { System.out.println("方法"+i); } } public static void main(String[] args) { Person p1=new Person("xiaoming"); MyThread thread=new MyThread(); //开辟新的cpu线程,指向run方法 thread.start(); p1.count(); //主线程执行方法 thread.run(); }
方法二:Runable接口
(1)创建Runable接口的实现类
(2)在实现类中重写Runable接口run方法,设置线程任务
(3)创建一个runable接口实现类对象
(4)创建Thread类对象,构造方法中传递Runable接口实现类对象
(5)调用Thread类中start方法,开启新的线程执行run方法
public class RunableImpl implements Runnable { @Override public void run() { for (int i = 0; i <10 ; i++) { System.out.println(Thread.currentThread().getName()+i); } } public static void main(String[] args) { RunableImpl runable=new RunableImpl(); Thread thread=new Thread(runable); thread.start(); for (int i = 0; i <10 ; i++) { System.out.println("main"+" "+Thread.currentThread().getName()+i); } } }
4.多线程的随即打印
public class MyThread extends Thread{ @Override public void run() { for (int i = 0; i <5 ; i++) { System.out.println("方法"+i); } } public static void main(String[] args) { Person p1=new Person("xiaoming"); MyThread thread=new MyThread(); //开辟新的cpu线程,指向run方法 thread.start(); p1.count(); //主线程执行方法 thread.run(); } }
xiaoming0
xiaoming1
方法0
方法1
方法2
方法3
方法4
xiaoming2
xiaoming3
xiaoming4
xiaoming5
xiaoming6
xiaoming7
xiaoming8
xiaoming9
方法0
方法1
方法2
方法3
方法4


浙公网安备 33010602011771号