知识大全 Java线程和Objec之间的不解之缘
Posted 知
篇首语:眼前多少难甘事,自古男儿当自强。本文由小常识网(cha138.com)小编为大家整理,主要介绍了知识大全 Java线程和Objec之间的不解之缘相关的知识,希望对你有一定的参考价值。
Java线程和Objec之间的不解之缘 以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!
Java线程在不断的发展 发展的过程中我们需要不断的学习相关代码的知识 下面我们就详细的看看如何进行相关技术信息的学习 在创建启动Java线程之前 先创建一个线程之间竞争使用的Object对象 然后将这个Object对象的引用传递给每一个线程对象的lock成员变量
这样一来 每个线程的lock成员都指向同一个Object对象 我们在run方法中 对lock对象使用synchronzied块进行局部封锁 这样就可以让Java线程去竞争这个唯一的共享的对象锁 从而实现同步
代码
package vista;
class MyThread implements java lang Runnable
private int threadId;
private Object lock;
public MyThread(int id Object obj)
this threadId = id;
this lock = obj;
@Override
public void run()
synchronized(lock)
for (int i = ; i < ; ++i)
System out println( Thread ID: + this threadId + : + i);
public class ThreadDemo
/**
* @param args
* @throws InterruptedException
*/
public static void main(String[] args) throws InterruptedException
Object obj = new Object();
for (int i = ; i < ; ++i)
new Thread(new MyThread(i obj)) start();
Thread sleep( );
从第二段代码可知 同步的关键是多个Java线程对象竞争同一个共享资源即可 上面的代码中是通过外部创建共享资源 然后传递到Java线程中来实现 我们也可以利用类成员变量被所有类的实例所共享这一特性 因此可以将lock用静态成员对象来实现 代码如下所示
代码
package vista;
class MyThread implements java lang Runnable
private int threadId;
private static Object lock = new Object();
public MyThread(int id)
this threadId = id;
@Override
public void run()
synchronized(lock)
for (int i = ; i < ; ++i)
System out println( Thread ID: + this threadId + : + i);
public class ThreadDemo
/**
* @param args
* @throws InterruptedException
*/
public static void main(String[] args) throws InterruptedException
for (int i = ; i < ; ++i)
new Thread(new MyThread(i)) start();
Thread sleep( );
cha138/Article/program/Java/gj/201311/27336
相关参考
这个程序验证了后台线程与用户线程的区别以及之间的关系证明了只要所有的用户线程结束了那么后台线程就将必须结束! importncurrentTimeUnit; publicclass
Java的用户线程和守护线程 以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!
Java多线程编程基础之线程和多线程 以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧! 随着计算机技
Java线程安全和非线程安全 以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧! ArrayList和
Java线程/内存模型的缺陷和增强 以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧! Java在语言
java多线程之wait()notify()notifyAll() wait()notify()notifyAll()不属于Thread类而是属于Object基础类也就是说每个对像都有wait(
线程的创建和启动 java语言已经内置了多线程支持所有实现Runnable接口的类都可被启动一个新线程新线程会执行该实例的run()方法当run()方法执行完毕后线程就结束了一旦一个线程执行
Java使用回调和线程处理耗时响应过程[2] 以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!&nbs
Java使用回调和线程处理耗时响应过程[1] 以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!&nbs
Java多线程中run和start的区别 以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧! 区别调用