1. java中导致死锁的原因 多个线程同时被阻塞,它们中的一个或者全部都在等待某个资源被释放,而该资源又被其他线程锁定,从而导致每一个线程都得等其它线程释放其锁定的资源,造成了所有线程都无法正常结束。这是从网上其他文档看到的死锁产生的四个必要条件: 1、互斥使用,即当资源被一个线程使用(占有)时, ...
分类:
编程语言 时间:
2018-10-09 00:30:12
阅读次数:
201
今天发现自己写的线上程序出现数据库不能同步的问题,查看日志已经停止记录,随后使用jstack查看线程的运行状况,发现有个同步线程锁住了。 以下是jstack -l 637 问题线程的内容。 查看代码发现代码中有这么一段 FutureTask中的synchronized批量保存数据,而Future获取 ...
分类:
其他好文 时间:
2018-09-22 15:12:33
阅读次数:
407
1 package org.study2.javabase.ThreadsDemo.sync; 2 3 /** 4 * @Auther:GongXingRui 5 * @Date:2018/9/18 6 * @Description:synchronized线程锁 7 **/ 8 public cl... ...
分类:
编程语言 时间:
2018-09-20 15:58:50
阅读次数:
175
3.1 单例模式的动机 对于一个软件系统的某些类而言,我们无须创建多个实例。举个大家都熟知的例子——Windows任务管理器,如图3-1所示,我们可以做一个这样的尝试,在Windows的“任务栏”的右键弹出菜单上多次点击“启动任务管理器”,看能否打开多个任务管理器窗口?如果你的桌面出现多个任务管理器 ...
分类:
其他好文 时间:
2018-09-04 13:55:32
阅读次数:
153
问:为什么python中有了全局解释器锁GIL,还要有互斥锁? 首先我们在进行对比之前,我们要知道什么是全局解释器锁,和什么是互斥锁,他们分别是用来做什么的才能解决这个问题。 首先介绍全局解释解释器锁GIL,Python代码的执行由Python 虚拟机(也叫解释器主循环,CPython版本)来控制, ...
分类:
编程语言 时间:
2018-08-28 18:58:50
阅读次数:
158
执行多个任务可以使用多线程或多进程。 多进程中,同一个变量,各自有一份拷贝存在于每个进程中,互不影响 多线程中,所有变量都由所有线程共享。而线程间的切换是系统进行调度,无法控制,所以可能 一个进程中的多个线程可能会同时调用某个变量的值,造成变量值的混乱,这时就引进了线程锁,但是线程锁又容易造成死锁, ...
分类:
编程语言 时间:
2018-08-28 13:09:53
阅读次数:
231
进程 一个计算机程序的运行实例,包含了需要执行的指令: 有自己独立的空间,包含程序内容和数据; 不同进程的地址空间是互相隔离的; 进程拥有各种资源和状态信息,包含打开的文件,子进程和信号处理; 进程使用类:java.lang.Process和java.lang.ProcessBuilder 线程 表 ...
分类:
编程语言 时间:
2018-08-20 11:31:58
阅读次数:
153
什么是进程通讯的信号? 用过Windows的我们都知道,当我们无法正常结束一个程序时, 用过Windows的我们都知道,当我们无法正常结束一个程序时, 可以用任务管理器强制结束这个进程,但这其实是怎么实现的呢? 可以用任务管理器强制结束这个进程,但这其实是怎么实现的呢? 同样的功能在Linux上是通 ...
分类:
编程语言 时间:
2018-08-15 01:17:39
阅读次数:
163