![](https://img-blog.csdnimg.cn/20201014180756754.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
java
iteye_899
这个作者很懒,什么都没留下…
展开
-
synchronized and volatile
synchronized加在方法 上,锁定这个类的对象,加在静态方法上,锁定的是这个类。volatile:可以对共享变量的值的改变直接反应在主内存中。一个共享变量的操作步骤如下:1、将主内存中的变量(java堆)值复制到工作内存中(操作数栈)2、对共享变量进行操作3、操作完成后,将共享变量存储到工作内存中4、将共享变量存回到主内存中。...原创 2015-06-14 11:58:19 · 78 阅读 · 0 评论 -
java 多线程-生产消费者者模式
独立写了一个生产消费者的模式,加强理解多线程编程及线程间的同步及信息交换。要点:1、在启动线程时,先需启动生产者。2、生产者生产满了后,就不能再生产,进入等待状态,直到有消费者进行消费。3、消费者进行消费时,若没有,则不能进行消费,进入等待状态。直到生产者生产了。public class TestProduct { public static void main(Str...原创 2015-06-14 18:22:35 · 85 阅读 · 0 评论 -
java线程-线程池
1.Executors.newFixedThreadPool 固定线程数2、Executors.newCachedThreadPool 按任务数创建线程数3、newSingleThreadExecutor 单线程4、newScheduledThreadPool 按固定时间或周期性执行一个任务publicstaticvoid main(String[] args) { ...原创 2015-06-16 13:56:55 · 61 阅读 · 0 评论 -
java-线程(futureTask、callable)
要取到一个线程的返回值,则线程需要实现callable接口返回值用future或futureTask来取得public class FutureTaskTest { public static void main(String[] args) throws InterruptedException, ExecutionException, TimeoutException ...原创 2015-06-16 13:59:33 · 77 阅读 · 0 评论 -
java-线程(lock)
1、synchronized 同步方法及代码块,锁JVM会自动释放,lock,则需要手工管理 try{lock.lock()}finally{lock.unlock()}2、lock 提供了读锁、写锁,以提高性能.为了保证数据的一致性和完整性,需要读和写是互斥的,写和写是互斥的,但是读和读是不需要互斥的,这样读和读不互斥性能更高些 ReentrantReadWriteLock ...原创 2015-06-16 16:58:31 · 69 阅读 · 0 评论 -
高并发服务器开发原则
1、linux 活跃连接数最大数与系统的内存及系统的句柄相关。一个连接系统就打开一个句柄,所以,若达到系统设置句柄数,则就不能再接收连接请求了。2、非阻塞方法 epoll,select、pull3、内存管理,一次分配大点的内存,多次分配内存,对系统性能有较大的影响4、少用系统调用5、少做内存拷贝,如读一个文件,则需文件用内核态拷贝至用户态,发送一个文件:则是从用户态拷贝到内核态的过...原创 2015-08-26 23:03:26 · 126 阅读 · 0 评论