Java线程在不断的发展,发展的过程中我们需要不断的学习相关代码的知识。下面我们就详细的看看如何进行相关技术信息的学习。在创建启动Java线程之前,先创建一个线程之间竞争使用的Object对象,然后将这个Object对象的引用传递给每一个线程对象的lock成员变量。
十余年的平南网站建设经验,针对设计、前端、开发、售后、文案、推广等六对一服务,响应快,48小时及时工作处理。网络营销推广的优势是能够根据用户设备显示端的尺寸不同,自动调整平南建站的显示方式,使网站能够适用不同显示终端,在浏览器中调整网站的宽度,无论在任何一种浏览器上浏览网站,都能展现优雅布局与设计,从而大程度地提升浏览体验。成都创新互联公司从事“平南网站设计”,“平南网站推广”以来,每个客户项目都认真落实执行。
这样一来,每个线程的lock成员都指向同一个Object对象。我们在run方法中,对lock对象使用synchronzied块进行局部封锁,这样就可以让Java线程去竞争这个***的共享的对象锁,从而实现同步。
代码
- package com.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 = 0; i < 100; ++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 = 0; i < 10; ++i)
- {
- new Thread(new MyThread(i, obj)).start();
- Thread.sleep(1);
- }
- }
- }
从第二段代码可知,同步的关键是多个Java线程对象竞争同一个共享资源即可,上面的代码中是通过外部创建共享资源,然后传递到Java线程中来实现。我们也可以利用类成员变量被所有类的实例所共享这一特性,因此可以将lock用静态成员对象来实现,代码如下所示:
代码
- package com.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 = 0; i < 100; ++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 = 0; i < 10; ++i)
- {
- new Thread(new MyThread(i)).start();
- Thread.sleep(1);
- }
- }
- }
以上的代码就是对Java线程的详细介绍。希望大家有所收获。
网站标题:Java线程和Objec之间的不解之缘
链接分享:http://www.csdahua.cn/qtweb/news46/400196.html
网站建设、网络推广公司-快上网,是专注品牌与效果的网站制作,网络营销seo公司;服务项目有等
声明:本网站发布的内容(图片、视频和文字)以用户投稿、用户转载内容为主,如果涉及侵权请尽快告知,我们将会在第一时间删除。文章观点不代表本网站立场,如需处理请联系客服。电话:028-86922220;邮箱:631063699@qq.com。内容未经允许不得转载,或转载时需注明来源: 快上网