软件构造复习:第七章

本文深入探讨了Java中的进程与线程,包括它们的创建和启动、内存共享模式、消息传递、线程安全策略如同步(synchronization)和锁。同时,分析了线程的休眠、中断,以及如何避免死锁,最后提出了通过注释形式明确线程安全策略的方法。
摘要由CSDN通过智能技术生成

进程和线程

并发模块的类型:进程和线程

进程:私有空间嘛,彼此隔离。

  • 拥有整台计算机的资源
  • 多进程之间不共享内存,进程之间通过消息传递进行协作
  • 一般来说,进程==程序=应用(但一个应用中可能包含多个进程)
  • 进程=虚拟机

线程:程序内部的控制机制(程序的一部分)

  • 线程=虚拟CPU
  • 程序共享、资源共享,都隶属于进程
  • 共享内存,通过创建消息队列在线程之间进行消息传递。

每个线程都有自己的。栈中包含所有方法的局部变量。线程只能访问自己的线程栈。线程创建的局部变量其他线程不可见。即使两个线程的代码一样,创建的同名变量仍然在各自得栈中。每个线程有自己版本的局部变量

线程 进程
轻量级 重量级
共享内存 私有
同步机制(存在一定的冲突)
结束(kill threads)不安全 结束(kill processes)安全

一个进程可以有多个线程。

线程的创建和启动、runnable

每个应用至少有一个线程
主线程——可以创建其他的线程。

创建现成的两种方法:

  • 从Thread类派生子类
public class HelloThread extends Thread{
   
	@Override
	public void run(){
   
		System.out.println("Hello from a thread!")}

//启动该线程的两个方式
	public static void main(String[] args){
   
	HelloThread p=new HelloThread();
	p.start();//若重复使用采用这种方式
	(new HelloThread()).start();//第二种方法
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值