扫码关注公众号

java专业课之线程相关
12-16
410观看
01

怎么检测一个线程是否持有对象监视器

Thread类提供了一个holdsLock(Objectobj)方法,当且仅当对象obj的监视器被某条线程持有的时候才会返回true,注意这

来自:操作系统-线程/进程-线程相关
02

进程与线程的关系以及区别?

关系一个线程可以创建和撤销另一个线程;同一个进程中的多个线程之间可以并发执行.相对进程而言,线程是一个更加接近于执行体的概念,它可以与同进程

来自:操作系统-线程/进程-线程相关
03

线程都有哪些状态,怎么转换的(阿里面试题)

线程:进程就好比工厂的车间,它代表CPU所能处理的单个任务。任一时刻,CPU总是运行一个进程,其他进程处于非运行状态。一个车间里,可以有很多工人。他们协同完成一个任务。线程就好比车间里的工人。一个进程可以包括多个线程。车间的空间是工人们共享的,比如许多房间是每个工人都可以进出的。这象征一个进程的内存空间是共享的,每个线程都可以使用这些共享内存。可是,每间房间的大小不同,有些房间最多只能容纳一个人,比如厕所。里面有人的时候,其他人就不能进去了。这代表一个线程使用某些共享内存时,其他线程必须等它结束,才能使用这一块内存。一个防止他人进入的简单方法,就是门口加一把锁。先到的人锁上门,后到的人看到上锁,就在门口排队,等锁打开再进去。这就叫"互斥锁"(Mutualexclusion,缩写Mutex),防止多个线程同时读写某一块内存区域。 

来自:操作系统-线程/进程-线程相关
04

在RT-Thread中,一个线程就是一个执行场景,错误码是与执行环境密切相关的,所以每个线程配备了一个变量用于保存错误码,这些错误码对我们d

正确答案是C在RT-Thread中,错误码采用宏定义的方式,线程的错误码定义为以下几种: #defineRT_EOK0/*无错误*/ #defineRT_ERROR1/*普通错误*/ #defineRT_ETIMEOUT2/*超时错误*/ #defineRT_EFULL3/*资源已满*/#defineRT_EEMPTY4/*无资源*/ #defineRT_ENOMEM5/*无内存*/#defineRT_ENOSYS6/*系统不支持*/ #defineRT_EBUSY7/*系统忙*/ #defineRT_EIO8/*IO错误*/ #defineRT_EINTR9/*中断系统调用*/ #defineRT_EINVAL10/*非法参数*/故C描述错误

来自:操作系统-线程/进程-线程相关
05

线程同步的机制?

线程同步四种方法:1.互斥量互斥量本质上是一把锁,在访问共享资源前对互斥量进行加锁,在访问完成后释放互斥量上的锁。对互斥量进行加锁以后,任何其它试图再次对互斥量加锁的线程将会被阻塞直到当前线程释放该互斥锁。如果释放互斥锁时有多个线程阻塞,所有在该互斥锁上的阻塞线程都会变成可运行状态,第一个变为运行状态的线程可以对互斥量加锁,其它线程将会看到互斥锁依然被锁住,只能回去再次等待它重新变为可用。在这种情况下,每次只有一个线程可以向前执行。2.信号量互斥量只能用于一个资源的互斥访问,它不能实现多个资源的多线程互斥问题。信号量可以实现多个同类资源的多线程互斥和同步。当信号量为单值信号量是,也可以完成一个资源的互斥访问。3.条件变量和监视器条件变量与互斥量一起使用时,允许线程以无竞争的方式等待特定的条件发生。条件本身是由互斥量保护的。线程在改变条件状态前必须首先锁住互斥量,其它线程在获得互斥量之前不会察觉到这种改变,因此必须锁定互斥量以后才能计算条件。4.读写锁读写锁与互斥量类似,不过读写锁允许更高的并行性。互斥量要么是锁住状态要么是不加锁状态,而且一次只有一个线程可以对其加锁。读写锁可以由三种状态:读模式下加锁状态、写模式下加锁状态、不加锁状态。一次只有一个线程可以占有写模式的读写锁,但是多个线程可以同时占有读模式的读写锁。在读写锁是写加锁状态时,在这个锁被解锁之前,所有试图对这个锁加锁的线程都会被阻塞。当读写锁在读加锁状态时,所有试图以读模式对它进行加锁的线程都可以得到访问权,但是如果线程希望以写模式对此锁进行加锁,它必须阻塞直到所有的线程释放读锁。虽然读写锁的实现各不相同,但当读写锁处于读模式锁住状态时,如果有另外的线程试图以写模式加锁,读写锁通常会阻塞随后的读模式锁请求。这样可以避免读模式锁长期占用,而等待的写模式锁请求一直得不到满足。读写锁非常适合于对数据结构读的次数远大于写的情况。当读写锁在写模式下时,它所保护的数据结构就可以被安全地修改,因为当前只有一个线程可以在写模式下拥有这个锁。当读写锁在读状态下时,只要线程获取了读模式下的读写锁,该锁所保护的数据结构可以被多个获得读模式锁的线程读取。读写锁也叫做共享-独占锁,当读写锁以读模式锁住时,它是以共享模式锁住的;当他以写模式锁住时,它是以独占模式锁住的。

来自:操作系统-线程/进程-线程相关
课程
专栏
专业课-操作系统-线程/进程-线程相关
4专栏
1课程
5 试题
热门专题