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
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
volatile关键字相信了解Java多线程的读者都很清楚它的作用。volatile关键字用于声明简单类型变量,如int、float、boolean等数据类型。如果这些简单数据类型声明为volatile,对它们的操作就会变成原子级别的。但这有一定的限制。例如,下面的例子中的n就不是原子级别的:pub...
分类:
其他好文 时间:
2014-10-14 19:50:29
阅读次数:
123
本Blog分为如下部分:
第一部分:synchronized与static
synchronized 的区别
第二部分:JVM底层又是如何实现synchronized的
第一部分:synchronized与static synchronized
的区别
1、synchronized与static synchronized 的区别
synchronized...
分类:
编程语言 时间:
2014-10-14 02:24:47
阅读次数:
365
1.Java创建与启动线程Java提供两种方式创建和启动线程:1.直接Thread类,2.实现Runable接口。1.1 继承Thread类public class myThread extends Thread { public void run(){ for(int i=0;i0){ 6 ...
分类:
编程语言 时间:
2014-10-14 02:17:17
阅读次数:
296