• 狂神说 网络编程实战讲解

    时间:2022-12-13 11:24:05

    1.1、概述计算机网络:计算机网络是指将地理位置不同的具有独立功能的多台过算机及其外部设备,通过通信线路连接起来,在网络操作系统,网络管理软件及网络通信协议的管理和协调下,实现资源共享和信息传递的计算机系统。网络编程的目的:无线电台...传播交流信息,数据交换。通信想要达到这个效果需要什么:1.如何...

  • Java7并发编程实战(一) 线程的中断

    时间:2022-12-11 19:41:12

    控制线程中断的方法一般常规是定义一个布尔值,然后while(布尔值) 去执行,当想停止该线程时候,把布尔值设为false.这里我们来看第二种,Interrupt该例子模拟一个线程从1打印到10,然后到5的时候中断线程,主要在线程中捕捉InterruptedException 异常public cla...

  • Java并发编程实战

    时间:2022-12-06 19:55:03

    代码中比较容易出现bug的场景:不一致的同步,直接调用Thread.run,未被释放的锁,空的同步块,双重检查加锁,在构造函数中启动一个线程,notify或notifyAll通知错误,Object.wait和Condition.await未在同步方法或块中调用,把Lock当锁用,调用Conditio...

  • 《c++并发编程实战》之第3章 线程共享

    时间:2022-12-05 07:30:44

    《c++并发教程实战》之第3章 线程共享 3.1 共享问题3.1.1 条件竞争3.1.2 防止恶性条件竞争3.2 互斥保护共享数据3.2.1 使用互斥3.1.cpp3.2.2 组织和编排代码保护共享数据3.2.cpp3.2.3 接口固有的条件竞争3.3.cpp3.4.cpp3.5.cpp3.2.4...

  • 那些年读过的书《Java并发编程实战》和《Java并发编程的艺术》三、任务执行框架—Executor框架小结

    时间:2022-11-08 20:03:11

    《Java并发编程实战》和《Java并发编程的艺术》           Executor框架小结1、在线程中如何执行任务(1)任务执行目标:在正常负载情况下,服务器应用程序要表现出良好的吞吐率和快速的响应性。在负载过载的情况下,应用程序的性能应该是逐渐减低的,而不是直接失败。要实现高吞吐率和快速的...

  • 【Java并发编程实战】-----“J.U.C”:CLH队列锁

    时间:2022-11-08 19:49:16

    在前面介绍的几篇博客中总是提到CLH队列,在AQS中CLH队列是维护一组线程的严格按照FIFO的队列。他能够确保无饥饿,严格的先来先服务的公平性。下图是CLH队列节点的示意图:在CLH队列的节点QNode中包含有一个locked的字段,该字段表示该节点是否需要获取锁,为true表示需要获取,为fal...

  • 【Java并发编程实战】-----“J.U.C”:CyclicBarrier

    时间:2022-11-08 19:45:02

    在上篇博客(【Java并发编程实战】-----“J.U.C”:Semaphore)中,LZ介绍了Semaphore,下面LZ介绍CyclicBarrier。在JDK API中是这么介绍的:一个同步辅助类,它允许一组线程互相等待,直到到达某个公共屏障点 (common barrier point)。在...

  • 【Java并发编程实战】----- AQS(三):阻塞、唤醒:LockSupport

    时间:2022-11-08 19:21:47

    在上篇博客(【Java并发编程实战】----- AQS(二):获取锁、释放锁)中提到,当一个线程加入到CLH队列中时,如果不是头节点是需要判断该节点是否需要挂起;在释放锁后,需要唤醒该线程的继任节点lock方法,在调用acquireQueued():if (shouldParkAfterFailed...

  • 【Java并发编程实战】----- AQS(四):CLH同步队列

    时间:2022-11-08 19:17:05

    在【Java并发编程实战】—–“J.U.C”:CLH队列锁提过,AQS里面的CLH队列是CLH同步锁的一种变形。其主要从两方面进行了改造:节点的结构与节点等待机制。在结构上引入了头结点和尾节点,他们分别指向队列的头和尾,尝试获取锁、入队列、释放锁等实现都与头尾节点相关,并且每个节点都引入前驱节点和后...

  • 《java并发编程实战》笔记

    时间:2022-11-08 19:12:40

    《java并发编程实战》这本书配合并发编程网中的并发系列文章一起看,效果会好很多。并发系列的文章链接为:  Java并发性和多线程介绍目录建议: 《java并发编程实战》第3章和第4章可以暂时先跳过。。这部分内容的文字和概念很多,代码块偏少。不容易看进去。一、线程1.线程的使用可以提升程序的性能。2...

  • 【Java并发编程实战】-----“J.U.C”:CountDownlatch

    时间:2022-11-08 19:07:26

    上篇博文(【Java并发编程实战】-----“J.U.C”:CyclicBarrier)LZ介绍了CyclicBarrier。CyclicBarrier所描述的是“允许一组线程互相等待,直到到达某个公共屏障点,才会进行后续任务”。而CountDownlatch和它也有一点点相似之处:CountDow...

  • 【Java并发编程实战】-----“J.U.C”:Semaphore

    时间:2022-11-08 19:02:59

    信号量Semaphore是一个控制访问多个共享资源的计数器,它本质上是一个“共享锁”。Java并发提供了两种加锁模式:共享锁和独占锁。前面LZ介绍的ReentrantLock就是独占锁。对于独占锁而言,它每次只能有一个线程持有,而共享锁则不同,它允许多个线程并行持有锁,并发访问共享资源。独占锁它所采...

  • 《Java并发编程实战》读书笔记一 -- 简介

    时间:2022-11-08 19:02:47

    《Java并发编程实战》读书笔记一 -- 简介并发的历史并发的历史,也是人类利用有限的资源去提高生产效率的一个的例子。设想现在有台计算机,这台计算机具有以下的资源:单核CPU一个内存磁盘打印机就跟下图所示:一台简要的计算机很久以前(也没多久,几十年前),计算机只能跑一个程序(可以回想下初学51时候的...

  • 【Java并发编程实战】----- AQS(二):获取锁、释放锁

    时间:2022-11-08 19:02:53

    上篇博客稍微介绍了一下AQS,下面我们来关注下AQS的所获取和锁释放。AQS锁获取AQS包含如下几个方法:acquire(int arg):以独占模式获取对象,忽略中断。acquireInterruptibly(int arg): 以独占模式获取对象,如果被中断则中止。acquireShared(i...

  • 【Java并发编程实战】-----“J.U.C”:ReentrantReadWriteLock

    时间:2022-11-08 18:57:44

    ReentrantLock实现了标准的互斥操作,也就是说在某一时刻只有有一个线程持有锁。ReentrantLock采用这种独占的保守锁直接,在一定程度上减低了吞吐量。在这种情况下任何的“读/读”、“读/写”、“写/写”操作都不能同时发生。然而在实际的场景中我们就会遇到这种情况:有些资源并发的访问中,...

  • 《Java并发编程实战》学习笔记 任务执行和取消关闭

    时间:2022-11-08 18:21:24

    查看豆瓣读书第六章 任务执行大多数并发应用程序是围绕执行任务进行管理的。设计任务时,要为任务设计一个清晰的任务边界,并配合一个明确的任务执行策略。任务最好是独立的,因为这会提高并发度。大多数服务器应用程序都选择了下面这个自然的任务边界:单个客户请求。任务时逻辑上的工作单元,线程是使任务异步执行的机制...

  • 【java并发编程实战】第一章笔记

    时间:2022-11-08 18:20:54

    1.线程安全的定义当多个线程访问某个类时,不管允许环境采用何种调度方式或者这些线程如何交替执行,这个类都能表现出正确的行为如果一个类既不包含任何域,也不包含任何对其他类中域的引用。则它一定是无状态的对象,无状态对象一定是线程安全的2.竞态条件并发编程中,由于不恰当的执行时序导致不正确的结果。当某个计...

  • Java并发编程实战 第8章 线程池的使用

    时间:2022-11-08 18:21:06

    合理的控制线程池的大小:下面内容来自网络。不过跟作者说的一致。不想自己敲了。留个记录。要想合理的配置线程池的大小,首先得分析任务的特性,可以从以下几个角度分析:任务的性质:CPU密集型任务、IO密集型任务、混合型任务。任务的优先级:高、中、低。任务的执行时间:长、中、短。任务的依赖性:是否依赖其他系...

  • Java并发编程实战 第5章 构建基础模块

    时间:2022-11-08 18:16:35

    同步容器类Vector和HashTable和Collections.synchronizedXXX都是使用监视器模式实现的。暂且不考虑性能问题,使用同步容器类要注意:只能保证单个操作的同步。这会引起两个问题:第一个问题:如果有一个功能,需要计算得到最后一个的值,有这个方法:list.get(list...

  • Java并发编程实战 第10章 避免活跃性危险

    时间:2022-11-08 18:11:58

    死锁经典的死锁:哲学家进餐问题。5个哲学家 5个筷子 如果没有哲学家都占了一个筷子 互相等待筷子 陷入死锁数据库设计系统中一般有死锁检测,通过在表示等待关系的有向图中搜索循环来实现。JVM没有死锁检测。锁顺序死锁典型的列子:LeftRightDeadLock,多个线程尝试去获取左右的锁。这个和哲学家...