线程,进程的区别,及实现方式:
/**
* 多线程
* 进程:操作系统(os)并发的一个任务
* 并发原理:cpu分时间片,多个任务交替执行(宏观并行,微观串行)有os调度cpu
* 线程:一个进程中并发的一个顺序执行的流程
* 线程的组成:
* 1.cpu
* 2.数据空间(堆空间共享,栈空间独立)每个线程都有自己独立的栈空间,多个线程共享同一个
* 堆空间
* 3.代码
* 线程的五个状态:初始状态 ,就绪状态,运行状态,阻塞状态终止状态
*
*/
public class TestThread {
public static void main(String[] args) {
Thread myThread1 = new Thread(new MyThread1());
Thread myThread2 = new Thread(new MyThread2());
MyThread3 myThread3 = new MyThread3();
MyThread4 myThread4 = new MyThread4();
myThread1.setName("线程1");
myThread2.setName("线程2");
myThread3.setName("线程3");
myThread4.setName("线程4");
//线程进入可运行状态
myThread1.start();
myThread2.start();
myThread3.start();
myThread4.start();
}
}
/*
* 方式1:实现 Runnable接口
* */
class MyThread1 implements Runnable{
public void run() {
for (int i = 1; i <= 50; i++) {
System.out.println(Thread.currentThread().getName()+"第"+i+"次执行任务");
}
}
}
class MyThread2 implements Runnable{
public void run() {
for (int i = 0; i <50; i++) {
System.out.println(Thread.currentThread().getName()+"第"+i+"次执行任务");
}
}
}
/*
* 方式2 继承Thread 类
* */
class MyThread3 extends Thread{
@Override
public void run() {
for (int i = 1; i <= 50; i++) {
System.out.println(this.getName()+"第"+i+"次执行任务");
}
}
}
class MyThread4 extends Thread{
@Override
public void run() {
for (int i = 0; i < 50; i++) {
System.out.println(this.getName()+"第"+i+"次执行任务");
}
}
}
来源:CSDN
作者:ghost.horse
链接:https://blog.csdn.net/weixin_45522160/article/details/104647080