对Java多线程技术中全部办法的具体解析[Java编程]
本文“对Java多线程技术中全部办法的具体解析[Java编程]”是由七道奇为您精心收集,来源于网络转载,文章版权归文章作者所有,本站不对其观点以及内容做任何评价,请读者自行判断,以下是其具体内容:
1、run()和start()
这两个办法应当都对比熟习,把需求并行处理的代码放在run()办法中,start()办法启动线程将自动调用 run()办法,这是由Java的内存机制规定的.并且run()办法必须是public拜候权限,返回值范例为void.
2、关键字Synchronized
这个关键字用于保护同享数据,当然前提是要分清哪些数据是同享数据.每个对象都有一个锁标志,当一个线程拜候该对象时,被Synchronized修饰的数据将被“上锁”,禁止其他线程拜候.当前线程拜候完这部份数据后释放锁标志,其他线程便可以拜候了.
public ThreadTest implements Runnable
{
public synchronized void run(){
for(int i=0;i<10;i++)
{
System.out.println(" " + i);
}
}
public static void main(String[] args)
{
Runnable r1 = new ThreadTest();
Runnable r2 = new ThreadTest();
Thread t1 = new Thread(r1);
Thread t2 = new Thread(r2);
t1.start();
t2.start();
}
}
以上这段程序中的 i 变量并非同享数据,也就是这里的Synchronized关键字并未起作用.因为t1,t2两个线程是两个对象(r1,r2)的线程.差别的对象其数据是差别的,所以r1和r2两个对象的i变量是并非同享数据.
当把代码改成以下:Synchronized关键字才会起作用
Runnable r = new ThreadTest();
Thread t1 = new Thread(r);
Thread t2 = new Thread(r);
t1.start();
t2.start();
以上是“对Java多线程技术中全部办法的具体解析[Java编程]”的内容,如果你对以上该文章内容感兴趣,你可以看看七道奇为您推荐以下文章:
本文地址: | 与您的QQ/BBS好友分享! |