![](https://img-blog.csdnimg.cn/20201014180756913.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
多线程
Mudrock__
这个作者很懒,什么都没留下…
展开
-
多线程_优先级
优先级高的线程并不总是先执行(CPU调度执行)原创 2022-08-11 01:53:21 · 141 阅读 · 0 评论 -
多线程_线程同步
一个线程获得对象的排他锁从而独占资源 其他线程必须等待该线程使用完资源释放锁后 方可获得锁并使用资源。如果一个优先级高的线程等待一个优先级低的线程释放锁 会导致优先级倒置 引起性能问题。在多线程竞争下 加锁与释放锁会导致比较多的上下文切换和调度延时 引起性能问题。本质上属于一种等待机制 多个需要同时访问此对象的线程进入此对象的等待池。一个线程持有锁会导致其他所有需要此锁的线程阻塞。...原创 2022-08-11 01:26:33 · 73 阅读 · 0 评论 -
多线程_synchronized锁与Lock锁
只要在代码运行过程中抛出了InterruptedException,不论当前线程是否拥有锁,都会运行run()方法中的部分代码块(catch代码块及之后的部分),说明该线程此时已获得运行权。若锁被其他线程获取,则进行等待,等待时长依给定参数,在等待的过程中,若线程获取锁,则返回true,若等待超时,则返回false。Java1.6中,synchronize在语义上很清晰,可以进行很多优化(适应自旋,锁消除,锁粗化,轻量级锁,偏向锁等等)。隐式锁,即无需显示指定起始位置和终止位置,锁的释放由JVM处理。...原创 2022-08-11 01:17:39 · 180 阅读 · 0 评论 -
多线程_对象锁与类锁
对象锁:被上锁者:需要同步的对象上锁方式:1.方法上锁2.代码块上锁(需要同步的对象)类锁:被上锁者:需要同步的类上锁方式:1.静态方法上锁2.静态代码块上锁(需要同步的类的Class对象)...原创 2022-08-10 18:25:41 · 149 阅读 · 0 评论 -
多线程_线程池
T> Future submit(Callable task): 有返回值 一般用来执行Callable接口的实现类的线程。void execute(Runnable command): 无返回值 一般用来执行Runnable接口的实现类的线程。API: ExecutorService(线程池接口) Executors(线程池的工厂类 用于创建并返回不同类型的线程池)...原创 2022-08-09 04:03:28 · 65 阅读 · 0 评论 -
多线程_生产者与消费者
信号灯法适用于生产和消费不同时进行的模式。管程法适用于生产与消费同时进行的模式。原创 2022-08-09 03:31:10 · 59 阅读 · 0 评论 -
多线程_线程分类_用户线程与守护线程
线程分类:线程分为用户线程和守护线程虚拟机必须确保用户线程执行完毕虚拟机不用等待守护线程执行完毕(后台记录操作日志、监控内存、垃圾回收等)setDaemon(true) 将线程设置为守护线程(默认为false 代表用户线程)...原创 2022-08-09 03:20:40 · 114 阅读 · 0 评论 -
多线程_线程插队_join()方法与锁的释放
方法本身被加上了synchronized锁,即Thread的对象锁。故在join()方法中调用。方法添加参数,则效果为:仅允许该线程插队参数毫秒。方法对于锁的释放,在不同的情况下会有不同的表现。方法后,其他线程将会等待该线程终止后再执行。,仅会释放Thread的对象锁。...原创 2022-08-09 02:58:49 · 491 阅读 · 0 评论 -
多线程_线程礼让
线程执行yield()方法后,放弃当前时间片,返回就绪状态,但并未释放锁。原创 2022-08-09 00:05:06 · 97 阅读 · 0 评论 -
多线程_线程状态
线程的五大状态1.创建 线程的创建(继承Thread类、实现Runnable接口、实现Callable接口)2.就绪 调用start()方法 线程进入就绪状态但并不会立即执行 而是由CPU调度执行3.运行 线程由CPU调度执行4.阻塞 调用sleep()、wait()或同步锁定时 线程进入阻塞状态 阻塞事件解除后重新进入就绪状态等待CPU调度执行5.死亡 线程中断或结束 线程一旦进入死亡状态就不能再次启动。...原创 2022-08-08 23:38:27 · 54 阅读 · 0 评论 -
多线程_静态代理
代理对象可以做到真实对象做不到的事。真实对象和代理对象实现同一个接口。真实对象专注于自身的事。线程的底层实现原理:静态代理。代理对象代理真实对象。原创 2022-08-08 20:34:21 · 105 阅读 · 0 评论 -
多线程_并发与并行
在多道程序环境下,并发性是指在一段时间内宏观上有多个程序在同时运行,但在单处理机系统中,每一时刻却仅能有一道程序执行,故微观上这些程序只能是分时地交替执行。倘若在计算机系统中有多个处理机,则这些可以并发执行的程序可被分配到多个处理机上,实现并行执行,即利用多个处理机来处理一个可并发执行的程序,如此,多个线程可实现真正意义上的同时执行。当存在多个线程时,若系统仅有一个CPU,则根本不可能真正地同时进行一个以上的线程,系统只能把CPU的运行时间划分为若干个时间段,再将时间段分配给各个线程。...原创 2022-08-08 20:15:26 · 2596 阅读 · 2 评论 -
多线程_创建线程
创建线程的三种方式:继承Thread类、实现Runnable接口、实现Callable接口。原创 2022-08-08 19:54:26 · 76 阅读 · 0 评论 -
多线程_进程与线程
进程是正在运行的程序的实例(an instance of a computer program that is being executed)。进程是一个具有一定独立功能的程序关于一个数据集合的一次运行活动。它是动态执行的基本单元,在传统的操作系统中,进程既是基本的分配单元,也是基本的执行单元。进程的概念主要有两点:进程是一个实体,拥有自己的地址空间:文本区域、数据区域、堆栈。文本区域存储处理器执行的代码;数据区域存储变量和进程执行期间使用的动态分配的内存;堆栈存储着活动过程调用的指令和本地变量。...原创 2022-08-08 17:20:38 · 210 阅读 · 0 评论