摘要:在Java多线程编程中,我们经常使用synchronized关键字来实现同步,控制多线程对变量的访问,来避免并发问题。 但是有的时候,synchronized关键字会显得过于沉重,不够灵活。synchronized 方法或语句的使用提供了对与每个对象相关的隐式监视器锁的访问,但却强制所有锁获取和释放
阅读全文
摘要:前两天看Java吧有人求助这个问题。想了想并不是很难。今天就顺手实现了一下。 我自己想到的有两种方法,一个是使用synchronized,一个是使用lock。 一、synchronized 这个方法的关键是synchronized关键字的位置。把它放在while判断之下就OK了。如果把synchro
阅读全文
摘要:网络的分层模型有很多种,最常见的就是OSI的七层模型和TCP/IP的四层模型。 这里主要说一下TCP/IP的四层模型。TCP/IP的四层模型如下图所示: 一、应用层 向用户传送数据的层称为 应用层(application layer)。 传输层、网际层和主机网络层共同定义了数据如何从一台计算机传输到
阅读全文
摘要:生产者-消费者模式在生活中非常常见。就拿我们去餐馆吃饭为例。我们会遇到以下两种情况: 1、厨师-客人 如下图所示,生产者、消费者直接进行交互。 生产者生产出产品后,通知消费者;消费者消费后,通知生产者。 以餐厅为例,厨师做好了一碗面,大声招呼:“13号,你的面好了!”;食客吃完了面,大声招呼:“师傅
阅读全文
摘要:1、源码 wait() notify() notifyAll()都是Object类中方法。源码如下所示: 可以看到它们都是final native修饰的方法。 2、使用条件 首先我们需要明确的一点是wait() notify() notifyAll()都是需要在线程拥有对象锁的情况下使用。 在没有对
阅读全文
摘要:(本篇主要内容摘自《Java多线程编程核心技术》) volatile关键字的主要作用是保证线程之间变量的可见性。 将JVM设置为-server时就会出现下面状况 可以看到 System.out.println("停止运行了!"); 没有得到运行,也就是说isRunning 一直是true的状态。 r
阅读全文
摘要:这么快又是新的一个月了。 七月份对我而言就像一个转折点一般。 我离开了武汉,在那里我度过了我的17 18 19 20 21岁的大部分生涯。 还记得我刚进入大学,军训结束的时候就是我生日,那年我刚满17岁,室友们开开心心得帮我度过了生日。 现在我快22了,时间过得真快。 七月份,我经历了一段时间的加班
阅读全文