美文网首页
照本宣科的问题

照本宣科的问题

作者: IAmWhoAmI | 来源:发表于2018-05-06 15:13 被阅读9次

3条你遵循的多线程最佳实践
  三条最佳实践我觉得大多数Java程序员都应该遵循:

1.给你的线程起个有意义的名字。 
2.避免锁定和缩小同步的范围 锁花费的代价高昂且上下文切换更耗费时间空间,试试最低限度的使用同步和锁,缩小临界区。
3.多用同步类少用wait 和 notify首先,CountDownLatch, Semaphore, CyclicBarrier 和 Exchanger 这些同步类简化了编码操作,而用wait和notify很难实现对复杂控制流的控制。其次,这些类是由最好的企业编写和维护在后续的JDK中它们还会不断优化和完善,使用这些更高等级的同步工具你的程序可以不费吹灰之力获得优化。
4.多用并发集合少用同步集合 ,并发集合比同步集合的可扩展性更好,所以在并发编程时使用并发集合效果更好。

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

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

Java内存模型是什么?
  Java内存模型规定和指引Java程序在不同的内存架构、CPU和操作系统间有确定性地行为。它在多线程的情况下尤其重要。Java内存模型对一个线程所做的变动能被其它线程可见提供了保证,它们之间是先行发生关系。这个关系定义了一些规则让程序员在并发编程时思路更清晰。比如,先行发生关系确保了:
线程内的代码能够按先后顺序执行,这被称为程序次序规则。
对于同一个锁,一个解锁操作一定要发生在时间上后发生的另一个锁定操作之前,也叫做管程锁定规则。
前一个对volatile的写操作在后一个volatile的读操作之前,也叫volatile变量规则。
一个线程内的任何操作必需在这个线程的start()调用之后,也叫作线程启动规则。
一个线程的所有操作都会在线程终止之前,线程终止规则。
一个对象的终结操作必需在这个对象构造完成之后,也叫对象终结规则。
可传递性

我强烈建议大家阅读《Java并发编程实践》第十六章来加深对Java内存模型的理解。

你如何在Java中获取线程堆栈?
  对于不同的操作系统,有多种方法来获得Java进程的线程堆栈。当你获取线程堆栈时,JVM会把所有线程的状态存到日志文件或者输出到控制台。
在Windows你可以使用Ctrl + Break组合键来获取线程堆栈,Linux下用kill -3命令。你也可以用jstack这个工具来获取,它对线程id进行操作,你可以用jps这个工具找到id。

Java中活锁和死锁有什么区别?
  这是上题的扩展,活锁和死锁类似,不同之处在于处于活锁的线程或进程的状态是不断改变的,活锁可以认为是一种特殊的饥饿。一个现实的活锁例子是两个人在狭小的走廊碰到,两个人都试着避让对方好让彼此通过,但是因为避让的方向都一样导致最后谁都不能通过走廊。简单的说就是,活锁和死锁的主要区别是前者进程的状态可以改变但是却不能继续执行。

相关文章

  • 照本宣科的问题

    3条你遵循的多线程最佳实践三条最佳实践我觉得大多数Java程序员都应该遵循: 如何避免死锁?Java多线程中的死锁...

  • 「2」照本宣科

    喜欢的东西既然要用喜欢的方式留下来,虽然很笨拙,但是很有意义。 我喜欢花,相信很多人都喜欢。 第一幅是去了格桑花田...

  • 成就秘法

    照本宣科!!!发愿简单跟随照做!

  • 楼枢「38」| 照本宣科

    第【三十八】章 照本宣科 “小区养狗究竟归那个部门管?你们物管究竟管的啥子?”抓住汤姜的白衬衣不放,魇面虎的老婆...

  • 抓紧时间回到自己的样子

    消沉了几天,问题并没有得到解决,住校、封校、疫情、无动于衷的学生、无聊的照本宣科、没有假期....... 拜托!请...

  • 《读书会营销系统》

    《自动进账营销系统》之照本宣科营销系统再论:能卖单子,能出单,才是我们的追求! 1、日日搞照本宣科视频,直播. 2...

  • 就不喜欢照本宣科的文章

    读书最重要的是有自己的思考,读完一本书学到的精髓也不是书中华丽丽的格言和美文,而是留在自己脑子里的观点,和深邃思考...

  • 国外大学都是怎么读书的?——读《王者速读法》有感

    听说在国外大学课堂上,老师不是照本宣科,而是坐在讲台上和学生进行讨论,引导大家对问题进行分析推理,而且每个学生的课...

  • 人生没有既定的轨迹,考验你的随机应变

    生活不会照本宣科,它不会按照你安排好的既定的路线发生。 所以,你要做好接受现实的准备,然后不急不躁,想好处理问题的...

  • TCP/IP详解卷1概述

    最近因工作需要,不得不捧起这本圣经来。写文章的目的不在于照本宣科,而在于分享感悟。 首先提个问题,为什么要...

网友评论

      本文标题:照本宣科的问题

      本文链接:https://www.haomeiwen.com/subject/ohoyrftx.html