Java小强个人技术博客站点    手机版
当前位置: 首页 >> 理论

用Java信号量 解决死锁

83130 理论 | 2014-8-27 16:02
死锁在多线程的情况下,在竞争竞态条件与临界区(http://www.javacui.com/Theory/147.html)出现时,会出现数据不同步情况, 而为了避免这种情况,之前也说了:界区实现方法有两种,一种是用synchronized,一种是用Lock显式锁实现。我们不使用显示的去锁,我们用信号量(http://www.javacui.com/Theo......查看详细

Java中信号量 Semaphore

116130 理论 | 2014-8-27 15:58
Semaphore 通常用于限制可以访问某些资源(物理或逻辑的)的线程数目。自从5.0开始,jdk在java.util.concurrent包里提供了Semaphore 的官方实现,因此大家不需要自己去实现Semaphore。虽然JDK已经提供了相关实现,但是还是很有必要去熟悉如何使用Semaphore及其背后的原理。阅读全文>>...查看详细

竞态条件与临界区

85980 理论 | 2014-8-27 15:57
当两个线程竞争同一资源时,如果对资源的访问顺序敏感,就称存在竞态条件。导致竞态条件发生的代码区称作临界区。在临界区中使用适当的同步就可以避免竞态条件。界区实现方法有两种,一种是用synchronized,一种是用Lock显式锁实现。阅读全文>>...查看详细

代码编写 四个要点

82110 理论 | 2014-8-14 12:26
还记得刚进一家公司时让我改某个人的代码,我当时疯了,代码乱七八糟,我根本就不想看那些代码,怎么去改。人靠衣装,就算你再有钱再有学识,穿着不好我只能当你是要饭的。写代码也是一样,面对横七竖八乱乱糟糟的代码,反胃的心都有了,怎么去看你的代码。阅读全文>>...查看详细

协议 232转网口中的RealCom协议

91740 理论 | 2014-8-3 8:40
我们本地通过TCP协议传输SNMP包到设备取数据,因为设备使用的都是串口,我们之间通信使用了一个协议转换器。把串口和网口连接起来,但是发现一个问题就是我能给设备发数据,但是自己收不到数据。经过抓包发现,每次返回的内容多出6个字节,问谁都不知道为什么会有这么个东西。我尝试自己开一个端口让设备主动发送,发现自己一直收到6个字节一组的数据。阅读全文>>...查看详细

Socket 关于设置Socket连接超时时间

184090 理论 | 2014-8-3 8:35
做网络编程的人对setSoTimeout方法一定很熟悉,都知道是设置连接的超时时间!但是我在网上找资料时发现很多人把这个超时时间理解成了链路的超时时间!我看了一下JDK 关于这个方法的说明,其实根本不是链路的超时时间!阅读全文>>...查看详细

多线程访问 资源的安全控制

79740 理论 | 2014-7-30 14:22
对于线程安全,大家都知道使用synchronized控制访问的资源,有变量安全、方法安全、块安全。我这里有个需求是这样的,我这里作为服务端有很多客户端与我进行交互,服务端也会主动发消息给客户端,但是要求每次交互时只能有一个用户。也就是说发送一组信息、等待信息、处理信息返回时这个链路只能有一个人使用。阅读全文>>...查看详细

Error occurred during initialization of VM

244560 理论 | 2014-7-22 14:20
之前也说过,Java虚拟机的内存大小可以调节到实际内存的1/4,今天我想把一个内存为8G机器Jboss大小调大一些,每次启动却失败。阅读全文>>...查看详细