随笔分类 -  java多线程

摘要:参考文章: https://www.jianshu.com/p/f5ead62827d7 作者:AKyS佐毅 链接:https://www.jianshu.com/p/f5ead62827d7 来源:简书 线程池技术正是关注如何缩短或调整T1,T3时间的技术,从而提高服务器程序性能的。它把T1,T3 阅读全文
posted @ 2019-12-04 09:34 刘大飞 阅读(714) 评论(0) 推荐(0) 编辑
摘要:转载自: http://blog.itpub.net/31545684/viewspace-2375117/ Java 中15种锁的介绍 在读很多并发文章中,会提及各种各样锁如公平锁,乐观锁等等,这篇文章介绍各种锁的分类。介绍的内容如下: 公平锁 / 非公平锁 可重入锁 / 不可重入锁 独享锁 / 阅读全文
posted @ 2019-11-13 10:08 刘大飞 阅读(455) 评论(0) 推荐(0) 编辑
摘要:1、多线程有什么用? (1)发挥多核CPU的优势: 当前,应用服务器至少也都是双核的,4核、8核甚至16核的也都不少见,如果是单线程的程序,那么在双核CPU上就浪费了50%,在4核CPU上就浪费了75%。单核CPU上所谓的"多线程"那是假的多线程,同一时间处理器只会处理一段逻辑,只不过线程之间切换得 阅读全文
posted @ 2019-11-06 22:01 刘大飞 阅读(198) 评论(0) 推荐(1) 编辑
摘要:1:blocked线程和waiting的线程的区别? 如何唤醒? java线程中含有waiting与blocked两种状态: 线程的 blocked状态往往是无法进入同步方法/代码块来完成的(BLOCKED是指线程正在等待获取锁)。这是因为无法获取到与同步方法/代码块相关联的锁。 WAITING是指 阅读全文
posted @ 2019-05-26 09:16 刘大飞 阅读(160) 评论(0) 推荐(0) 编辑
摘要:使用synchronized的时候,一般要防止String 常量池造成的坑。 比如,一个函数中包含: synchronized("A") { } 还有另外一个函数中包含: synchronized("A") { } 因为常量池的原因 :比如下面,A和B实际上是同一个对象。 String a = "A 阅读全文
posted @ 2018-10-31 23:09 刘大飞 阅读(179) 评论(0) 推荐(0) 编辑
摘要:一 Synchronized锁: 1 synchronized取得的锁都是对象锁,而不是把一段代码或方法加锁。 synchronized是给该方法的实例对象加锁。如果多个线程访问的是同一个对象 的synchronized方法,就可以同步。 2 对象中的非synchronized类型的方法是不需要等待 阅读全文
posted @ 2018-10-29 21:44 刘大飞 阅读(288) 评论(0) 推荐(0) 编辑
摘要:守护线程:它的特性有“陪伴”的含义,当进程中不存在非守护线程了,则守护线程自动销毁。 典型的守护线程就是垃圾回收线程。 thread.setDaemon(true); 阅读全文
posted @ 2018-10-25 21:52 刘大飞 阅读(120) 评论(0) 推荐(0) 编辑
摘要:优先级高的线程得到的CPU资源较多,也就是CPU优先执行优先级较高的线程对象中的任务。 设置线程优先级有助于“线程规划器”确定下一次选择哪一个线程来优先执行。 Java中,线程的优先级分为1 ~ 10这10个等级,如果小于1或大于10,就抛出异常。 default 的优先级是5. 阅读全文
posted @ 2018-10-25 21:48 刘大飞 阅读(137) 评论(0) 推荐(0) 编辑
摘要:yield()方法的作用是放弃当前的CPU资源,让 其他任务占用CPU执行时间。但放弃时间不确定, 有可能刚刚放弃,马上又获得CPU时间片。 阅读全文
posted @ 2018-10-25 21:35 刘大飞 阅读(162) 评论(0) 推荐(0) 编辑
摘要:1 Suspend、resume 的缺点1 :独占! 线程执行到同步块中,如果线程暂停了,不会释放锁。 比如,比如System.out.println()方法就是一个同步方法, 如果线程调用System.out.println()后,在进入函数内部时,暂停了, 其他地方调用System.out.pr 阅读全文
posted @ 2018-10-25 21:30 刘大飞 阅读(205) 评论(0) 推荐(0) 编辑
摘要:1 如果线程在sleep()状态下停止线程,会是什么效果? 答案: 如果在sleep状态下停止某一线程,会进入sleep的catch块中, 抛出InterruptedException 异常,并且清除停止状态值,使之变成false. 阅读全文
posted @ 2018-10-25 20:44 刘大飞 阅读(583) 评论(0) 推荐(0) 编辑
摘要:1: Interrup: 直接上代码: result: i=256i=257truetrue停止状态异常异常退出 2:stop:已经不建议使用 使用stop() 停止的线程则是非常暴力的。 stop() 已经废弃了,因为: 1 如果强制停止则有可能使得一些清理工作得不到完成。 2 对锁定的对象进行了 阅读全文
posted @ 2018-10-25 15:05 刘大飞 阅读(129) 评论(0) 推荐(0) 编辑
摘要:1 判断线程是否是停止状态? interrupt() : interrupt方法用于中断线程。调用该方法的线程的状态为将被置为"中断"状态。 注意:线程中断仅仅是置线程的中断状态位,不会停止线程。需要用户自己去监视线程的状态为并做处理。支持线程中断的方法(也就是线程中断 后会抛出interrupte 阅读全文
posted @ 2018-10-25 13:39 刘大飞 阅读(175) 评论(0) 推荐(0) 编辑
摘要:setName() : 给线程起名字。 isAlive() : 线程是否存或。 currentThread() : 取得当前线程。 getId() : 取得线程的唯一标识。 阅读全文
posted @ 2018-10-25 13:38 刘大飞 阅读(159) 评论(0) 推荐(0) 编辑
摘要:如果欲创建的线程类已经有一个父类了,就不能再继承Thread类了,java不支持多继承。 实现Runnable接口: 继承Thread类: 测试:如下三种调用方法都可以。 阅读全文
posted @ 2018-10-25 10:55 刘大飞 阅读(231) 评论(0) 推荐(0) 编辑
摘要:Run() : run()就是个普通方法,可以调用执行,但是是同步调用,没有异步的效果。 Run()方法就是个普通方法,可以调用多次 Start(): 通知线程规划期,此线程已经准备就绪,等待调用线程对象的run()的方法。就是让系统安排一个时间来调用Thread的run()方法,使得按异步的方法执 阅读全文
posted @ 2018-10-25 10:42 刘大飞 阅读(358) 评论(0) 推荐(0) 编辑
摘要:completeStage 阅读全文
posted @ 2018-07-08 21:13 刘大飞 阅读(370) 评论(0) 推荐(0) 编辑
摘要:1: Fork/join fork/join: fork是分叉的意思, join是合并的意思。 Fork/Join框架:是JAVA7提供的一个用于并行执行任务的框架,是一个把大任务分割成若干个小任务,最终汇总每个小任务结果后得到大任务结果的框架。 Fokr/Join的适合场景:所处理的元素必须是独立 阅读全文
posted @ 2018-01-18 22:49 刘大飞 阅读(1580) 评论(0) 推荐(0) 编辑
摘要:线程池 阅读全文
posted @ 2017-12-26 22:43 刘大飞 阅读(114) 评论(0) 推荐(0) 编辑
摘要:Object中对内置锁进行操作的一些方法: Java内置锁通过synchronized关键字使用,使用其修饰方法或者代码块,就能保证方法或者代码块以同步方式执行. 内置锁使用起来非常方便,不需要显式的获取和释放,任何一个对象都能作为一把内置锁。使用内置锁能够解决大部分的同步场景。“任何一个对象都能作 阅读全文
posted @ 2017-12-26 22:42 刘大飞 阅读(450) 评论(0) 推荐(0) 编辑

点击右上角即可分享
微信分享提示