用bat调cpu线程会
发布网友
发布时间:2022-12-28 06:38
我来回答
共1个回答
热心网友
时间:2023-10-22 09:09
进程概念:进程是指运行中的应用程序,每个进程都有自己独立的地址空间(内存空间),比如用户点击桌面的IE浏览器,就启动了一个进程,操作系统就会为该进程分配独立的地址空间。当用户再次点击左面的IE浏览器,又启动了一个进程,操作系统将为新的进程分配新的独立的地址空间。目前操作系统都支持多进程。
线程概念:是进程中的一个实体,是被系*立调度和分派的基本单位,线程自己不拥有系统资源,只拥有一点在运行中必不可少的资源,但它可与同属一个进程的其它线程共享进程所拥有的全部资源。一个线程可以创建和撤消另一个线程,同一进程中的多个线程之间可以并发执行。线程有就绪、阻塞和运行三种基本状态。
1、线程是轻量级的进程
2、线程没有独立的地址空间(内存空间)
3、线程是由进程创建的(寄生在进程)
4、一个进程可以拥有多个线程-->这就是我们常说的多线程编程
5、线程有几种状态:
a、新建状态(new)
b、就绪状态(Runnable)
c、运行状态(Running)
d、阻塞状态(Blocked)
e、死亡状态(Dead)
线程--如何使用
在java中一个类要当作线程来使用有两种方法。
1、继承Thread类,并重写run函数
2、实现Runnable接口,并重写run函数
因为java是单继承的,在某些情况下一个类可能已经继承了某个父类,这时在用继承Thread类方法来创建线程显然不可能java设计者们提供了另外一个方式创建线程,就是通过实现Runnable接口来创建线程。
什么是线程安全和线程不安全?
线程安全就是在多线程环境下也不会出现数据不一致,而非线程安全就有可能出现数据不一致的情况。
线程安全由于要确保数据的一致性,所以对资源的读写进行了控制,换句话说增加了系统开销。所以在单线程环境中效率比非线程安全的效率要低些,但是如果线程间数据相关,需要保证读写顺序,用线程安全模式
什么是自旋锁?sniplock
互斥锁和他类似,但是互斥锁会让没获取到资源的其他线程睡眠。线程想要获取共享资源就要先获取锁定资源的锁。当线程无法获得锁的时候就会挂起或者阻塞,这个操作是在内核态进行的。我们想充分发挥cpu资源,所以jvm采取一个自旋锁机制,让获取不到资源的线程进行空循环,来一直等待锁释放。
缺点:如果资源被某个线程长时间占用,就会使其他线程一直处于空循环状态,白白浪费cpu资源。
使用场景:线程占用资源的时间不长的。
优点:由于线程状态不会改变,获取资源速度会很快。
什么是Java内存模型?
https://blog.csdn.net/javazejian/article/details/72772461
什么是CAS?
java.util.concurrent包建立在CAS之上,没有CAS就没有并发包
CAS:compare and swap 比较交换 java.util.concurrent包中借助CAS实现了区别于synchronise同步锁的一种乐观锁。
CAS有三个操作数:V内存值,A预期的旧值,B要更新的新值;仅当内存值V和预期值A相等时,才会将内存值V更新为新值B,否则什么也不做。
CAS原理:CAS是通过JNI实现