线程的进程

线程是操作系统能够进行运算调度的最小单位,它被包含在进程之中,是进程中的实际运 作单位。程序员可以通过它进行多处理器编程,你可以使用多线程对运算密集型任务提速。 比如,如果一个线程完成一个任务要 100 毫秒,那么用十个线程完成改任务只需 10 毫秒。 Java 在语言层面对多线程提供了卓越的支持,它也是一个很好的卖点。欲了解更多详细信 息请点击这里。

线程是进程的子集,一个进程可以有很多线程,每条线程并行执行不同的任务。不同的进 程使用不同的内存空间,而所有的线程共享一片相同的内存空间。别把它和栈内存搞混, 每个线程都拥有单独的栈内存用来存储本地数据。更多详细信息请点击这里

在语言层面有两种方式。java.lang.Thread 类的实例就是一个线程但是它需要调用 java.lang.Runnable 接口来执行,由于线程类本身就是调用的 Runnable 接口所以你可以 继承 java.lang.Thread 类或者直接调用 Runnable 接口来重写 run ()方法实现线程。更多 详细信息请点击这里。

在这里插入图片描述

死锁是指两个或两个以上的进程在执行过程中,因争夺资源而造成的一种互相等待的现象, 若无外力作用,它们都将无法推进下去。这是一个严重的问题,因为死锁会让你的程序挂 起无法完成任务,死锁的发生必须满足以下四个条件:
互斥条件:一个资源每次只能被一个进程使用。
请求与保持条件:一个进程因请求资源而阻塞时,对已获得的资源保持不放。
不剥夺条件:进程已获得的资源,在末使用完之前,不能强行剥夺。
循环等待条件:若干进程之间形成一种头尾相接的循环等待资源关系。

避免死锁最简单的方法就是阻止循环等待条件,将系统中所有的资源设置标志位、排序, 规定所有的进程申请资源必须以一定的顺序(升序或降序)做操作来避免死锁。这篇教程 有代码示例和避免死锁的讨论细节。

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值