【Java基础】线程和进程 - Go语言中文社区

【Java基础】线程和进程


线程诞生的原因: 随着计算机的发展,对CPU的要求越来越高,进程之间的切换开销较大,已经无法满足越来越复杂的程序的要求了。于是就发明了线程。(要了解线程,首先就要清楚历史背景,先有进程后有线程。)

进程的概念:进程是指可执行程序,并存放在计算机存储器的一个指令序列,它是一个动态执行的过程。

线程的概念: 线程是程序执行中一个单一的顺序控制流程,是程序执行流最小单元,是处理器调度分派基本单位。一个进程可以有一个或多个线程,各个线程之间共享程序的内存空间(也就是所在进程的内存空间)。

线程的组成:                                                      进程的组成:

a.线程ID                                                         a.内存空间(代码、数据、进程空间、打开的文件)

b.当前指令指针(PC)                                    b.一个或多个线程组成

c.寄存器和堆栈组成。

 

线程和进程的区别:

线程的创建:

a.继承Thread类

class MyThread extends Thread{
	public void run() {
		System.out.println(getName()+"线程 正在运行中!");
	}
}
public class ThreadTest {
	public static void main(String[] args) {
		MyThread mt=new MyThread();
		mt.start();
	}
}

b.实现 Runnable接口

class PrintRunnable implements Runnable{
	public void run() {
		System.out.println(Thread.currentThread().getName()+"在运行中!");
	}
}
public class Test {
	public static void main(String args[]) {
		PrintRunnable pr1=new PrintRunnable();
		Thread th1=new Thread(pr1);
		th1.start();
		PrintRunnable pr2=new PrintRunnable();
		Thread th2=new Thread(pr2);
		th2.start();
	}
}

线程的生命周期如图所示:

简单说明一下:a.jdk8中stop()方法已经不使用了。 

今天先复习到这里吧。。。持续更新~

版权声明:本文来源CSDN,感谢博主原创文章,遵循 CC 4.0 by-sa 版权协议,转载请附上原文出处链接和本声明。
原文链接:https://blog.csdn.net/zzf_forgot/article/details/88761286
站方申明:本站部分内容来自社区用户分享,若涉及侵权,请联系站方删除。
  • 发表于 2020-02-02 19:26:22
  • 阅读 ( 795 )
  • 分类:Linux

0 条评论

请先 登录 后评论

官方社群

GO教程

猜你喜欢