锁和synchronized关键字为了同步多线程,Java语言使用监视器(monitors),一种高级的机制来限定某一 时刻只有一个线程执行一段受监视器保护的代码。监视器的行为是通过锁来实现的,每一个对象都有一个锁。 每个线程都有一个工作内存,在里面存放从所有线程共享的主内存里拷贝来的变量。为了访问...
分类:
编程语言 时间:
2014-08-22 12:15:56
阅读次数:
162
最近在做代码优化时学习和研究了下JAVA多线程的使用,看了菜鸟们的见解后做了下总结。 1.JAVA多线程实现方式 JAVA多线程实现方式主要有三种:继承Thread类、实现Runnable接口、使用ExecutorService、Callable、F...
分类:
编程语言 时间:
2014-08-21 19:46:05
阅读次数:
283
我们都知道,在JDK1.5之前,Java中要进行业务并发时,通常需要有程序员独立完成代码实现,当然也有一些开源的框架提供了这些功能,但是这 些依然没有JDK自带的功能使用起来方便。而当针对高质量Java多线程并发程序设计时,为防止死蹦等现象的出现,比如使用java之前的wait()、 notify()和synchronized等,每每需要考虑性能、死锁、公平性、资源管理以及如何避免线程安全性方面带...
分类:
其他好文 时间:
2014-08-21 15:03:34
阅读次数:
272
最近做的偏向并发了,因为以后消息会众多,所以,jms等多个线程操作数据的时候,对共享变量,这些要很注意,以防止发生线程不安全的情况。(一)先说说第一个,模拟对信息的发送和接收。场景是这样的:就像笔者之前做的消息的发送,一个是服务器,一个是客户端。发送的话,要保证信息100%的发送给客户端,那么发给客...
分类:
编程语言 时间:
2014-08-21 12:49:54
阅读次数:
440
1.减少了创建和销毁线程的次数,每个工作线程都可以被重复利用,可执行多个任务。
2.可以根据系统的承受能力,调整线程池中工作线线程的数目,防止因为消耗过多的内存,而把服务器累趴下(每个线程需要大约1MB内存,线程开的越多,消耗的内存也就越大,最后死机)。
Java里面线程池的顶级接口是Executor,但是严格意义上讲Executor并不是一个线程池,而只是一个执行线程的工具。真正的线程池接口...
分类:
编程语言 时间:
2014-08-21 00:14:33
阅读次数:
322
1.ThrTest.java 继承Thread类方式public class ThrTest extends Thread { private String name; public ThrTest() { } public ThrTest(St...
分类:
编程语言 时间:
2014-08-20 12:23:42
阅读次数:
200
一、同步问题提出线程的同步是为了防止多个线程访问一个数据对象时,对数据造成的破坏。例如:两个线程ThreadA、ThreadB都操作同一个对象Foo对象,并修改Foo对象上的数据。publicclassFoo {privateintx = 100;publicintgetX() {returnx;}...
分类:
编程语言 时间:
2014-08-19 10:41:23
阅读次数:
214
一、双向队列Deque Queue除了前面介绍的实现外,还有一种双向的Queue实现Deque。这种队列允许在队列头和尾部进行入队出队操作,因此在功能上比Queue显然要更复杂。下图描述的是Deque的完整体系图。需要说明的是L...
分类:
数据库 时间:
2014-08-18 12:41:24
阅读次数:
354
Java多线程学习1——两种基本实现框架一、前言 当一个Java程序启动的时候,一个线程就立刻启动,改程序通常也被我们称作程序的主线程。其他所有的子线程都是由主线程产生的。主线程是程序开始就执行的,并且程序最终是以主线程的结束而结束的。 Java编写程序都运行在在Java虚拟机(JVM)中,...
分类:
编程语言 时间:
2014-08-17 18:27:52
阅读次数:
377