java多线程编程中,存在很多线程安全问题,至于什么是线程安全呢,给出一个通俗易懂的概念还是蛮难的,如同《java并发编程实践》中所说:写道给线程安全下定义比较困难。存在很多种定义,如:“一个类在可以被多个线程安全调用时就是线程安全的”。此处不赘述了,首先给出静态变量、实例变量、局部变量在多线程环境...
分类:
编程语言 时间:
2014-10-20 14:54:36
阅读次数:
301
我们知道在多线程编程中,我们很大的一部分内容是为了解决线程间的资源同步问题和线程间共同协作解决问题。线程间的同步,通俗我们理解为僧多粥少,在粥有限情况下,我们怎么去防止大家有秩序的喝到粥,不至于哄抢都没得喝。线程讲协作,我们可以理解为我们在医院看病的时候,我们要先挂号,才能看病。现在医院有很多病.....
分类:
编程语言 时间:
2014-10-19 12:57:35
阅读次数:
206
1.定义一个Thread的子类2.重写run方法3.在需要的定法创建子类对象4.调用子类对象的start方法(不要调用run方法,调用run就变成单线程了) 1 public class Main { 2 public static void main(String[] args) { 3 ...
分类:
编程语言 时间:
2014-10-19 11:26:24
阅读次数:
170
最简单的方法就是使用synchronized关键字来使run方法同步,看下面的代码,只要在void和public之间加上synchronized关键字复制代码 代码如下:public synchronized void run(){ }从上面的代码可以看出,只要在void和public之间加上syn...
分类:
编程语言 时间:
2014-10-19 01:23:50
阅读次数:
339
我们可以通过synchronized块来同步特定的静态或非静态方法。要想实现这种需求必须为这些特性的方法定义一个类变量,然后将这些方法的代码用synchronized块括起来,并将这个类变量作为参数传入synchronized块下面的代码演示了如何同步特定的类方法:复制代码 代码如下:package...
分类:
编程语言 时间:
2014-10-19 01:19:46
阅读次数:
331
synchronized块来同步一个对象变量,也可以使用synchronized块来同步类中的静态方法和非静态方法,下面使用Synchronized块同步方法synchronized关键字有两种用法。第一种就是在《使用Synchronized关键字同步类方法》一文中所介绍的直接用在方法的定义中。 另...
分类:
编程语言 时间:
2014-10-19 01:15:37
阅读次数:
254
首先,Future是一个接口,该接口用来返回异步的结果。
package com.itbuluoge.mythread;
import java.util.ArrayList;
import java.util.concurrent.Callable;
import java.util.concurrent.ExecutionException;
import java.util.concur...
分类:
编程语言 时间:
2014-10-18 14:06:15
阅读次数:
243
package com.itbuluoge.mythread;
class SimpleThread extends Thread
{
private int priority;
public SimpleThread(int i)
{
priority=i;
}
public void run()
{
Thread.currentThread().setPriority(p...
分类:
编程语言 时间:
2014-10-18 14:03:11
阅读次数:
172
今天看了一片博文,讲Java多线程之线程的协作,其中作者用程序实例说明了生产者和消费者问题,但我及其他读者发现程序多跑几次还是会出现死锁,百度搜了下大都数的例子也都存在bug,经过仔细研究发现其中的问题,并解决了,感觉有意义贴出来分享下。...
分类:
编程语言 时间:
2014-10-17 00:13:33
阅读次数:
291
1.INSERT调用PL/SQL 去insert的时候,没有使用super(),此时应当自己创建callable statement;调用checkErrors()方法在执行 callable statement 处理异常后protected void insertRow() { try { ...
分类:
数据库 时间:
2014-10-16 12:37:22
阅读次数:
210