前几天老师领着学习了一下单线程和多线程的题目。
这里是操作系统中非常经典的题目,生产者和消费者的题,这里涉及的是仓库,
只有一个人(生产者或消费者)进入,另一个人只有等待。
这里的重点是关于传值的问题。一定要保持一致,不然,对于存和取 的对象,就可能出现多个。
//===========================================================...
分类:
编程语言 时间:
2015-04-15 17:13:36
阅读次数:
150
package com.lipeng;
public class LoopDemo {
/**
* 线程A循环10次,然后线程B循环100次,然后A再循环10次,然后B再循环100次。如此循环50次。
* lipeng
* 2015-4-10
* @param args
*/
public static void main(String[] args) {
MyTa...
分类:
编程语言 时间:
2015-04-14 23:25:54
阅读次数:
180
Java中读写锁有个接口java.util.concurrent.locks.ReadWriteLock,也有具体的实现ReentrantReadWriteLock,详细的API可以查看JavaAPI文档。 下面这个例子是在文例子的基础上,将普通锁改为读写锁,并添加账户余额查询的功能,代码如下:pa...
分类:
编程语言 时间:
2015-04-14 14:21:14
阅读次数:
178
1. 可见性如果一个线程对共享变量值的修改,能够及时的被其他线程看到,叫做共享变量的可见性。如果一个变量同时在多个线程的工作内存中存在副本,那么这个变量就叫共享变量2. JMM(java内存模型)多个线程同时对主内存的一个共享变量进行读取和修改时,首先会读取这个变量到自己的工作线程成为一个副本中,改...
分类:
编程语言 时间:
2015-04-11 23:49:29
阅读次数:
243
Java里面线程池的顶级接口是Executor,但是严格意义上讲Executor并不是一个线程池,而只是一个执行线程的工具。真正的线程池接口是ExecutorService。比较重要的几个类:ExecutorService真正的线程池接口。ScheduledExecutorService能和Time...
分类:
编程语言 时间:
2015-04-11 22:16:25
阅读次数:
226
记得第一次做java的题的时候,看到“写出生产者消费者问题”,还以为是和工厂模式有关系。现在想想也是被雷倒了。
java的生产者消费者问题其实是讲多线程并发操作同一资源缓冲区,当资源缓冲区满的时候,线程继续添加数据,则应该使其等待,有空间时再发消息通知;当资源缓冲区没有资源,线程继续取数据时,应该使其等待,有资源是再发消息通知;...
分类:
编程语言 时间:
2015-04-11 18:00:17
阅读次数:
147
1、socket服务端package com.socket.project;
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStream;
import java.io.InputStreamReader;
import java.net.ServerSocket;
import ja...
分类:
编程语言 时间:
2015-04-11 14:57:05
阅读次数:
129
场景简单,其实就是在做WEB请求的时候,处理的结果需要同时通知到一个第三方服务器,通知后再把结果返回给客户端。
现在这个通知只是一个简单通知,如果直接加在客户端请求里面,客户端会在请求第三方服务器时堵塞。另外为了客户端不能超时,所以通知失败后也不敢多次请求。
这里可以使用定制任务来解决这个问题,一个客户端请求后产生一个定制的任务,然后服务后台进行多线程的异步处理,这样就会大大...
分类:
编程语言 时间:
2015-04-11 10:22:43
阅读次数:
215
網址:http://blog.csdn.net/virgoboy2004/article/details/58761332、struts2上面我们了解了Struts1里面的多线程问题,那Struts2是怎么解决这个问题的呢?其实道理非常简单,原因就是Strtus2会获取到用户的http请求,然后负责给每个请求实例化一个Action对象,但是大家注意,?.
分类:
编程语言 时间:
2015-04-10 20:31:42
阅读次数:
134