浅谈如何使用java多线程
Java多线程程序中经常用到的方法有以下几个:run(),start(),wait(),sleep(),notify(),notifyAll(),yield(),join(),还有一个重要的关键字 synchronized。下面分别对这些方法进行解释:
一、run()和start()
这两个方法应该都比较熟悉,把需要并行处理的代码放在run()方法中,start()方法启动线程将自动调用 run()方法,这是由Java的内存机制规定的'。并且run()方法必须是public访问权限,返回值类型为void。
二、关键字Synchronized
这个关键字用于保护共享数据,当然前提是要分清哪些数据是共享数据。每个对象都有一个锁标志,当一个线程访问该对象时,被Synchronized修饰的数据将被“上锁”,阻止其他线程访问。当前线程访问完这部分数据后释放锁标志,其他线程就可以访问了。
ic ThreadTest implements Runnable
2.{
ic synchronized void run(){
(int i=0;i<10;i++)
5.{
tln(" " + i);
7.}
8.}
ic static void main(String[] args)
10.{
able r1 = new ThreadTest();
able r2 = new ThreadTest();
ad t1 = new Thread(r1);
ad t2 = new Thread(r2);
t();
t();
17.}
18.}
以上这段程序中的 i 变量并不是共享数据,也就是这里的Synchronized关键字并未起作用。因为t1,t2两个线程是两个对象(r1,r2)的线程。不同的对象其数据是不同的,所以r1和r2两个对象的i变量是并不是共享数据。
当把代码改成如下:Synchronized关键字才会起作用
able r = new ThreadTest();
ad t1 = new Thread(r);
ad t2 = new Thread(r);
t();
t();
-
如何使用java
Java是一种可以撰写跨平台应用程序的面向对象的`程序设计语言。以下是小编为大家搜索整理的如何使用java,希望能给大家带来帮助!更多精彩内容请及时关注我们应届毕业生考试网!...
-
Java程序员面试题集50道
本文是本站小编搜索整理的关于Java程序员面试题集50道,涵盖内容全面,包括数据结构和算法相关的题目、经典面试编程题等,对hashCode方法的设计、垃圾收集的堆和代进行剖析,供参考学习,感兴趣的小伙伴们可以参考一下!想了解更多相关信息请持续关注我们应届毕业生考试...
-
java system类使用方法示例
常用的方法:复制代码代码如下:longcurrentTimeMillis();获取当前时间的毫秒值voidexit();终止当前正在运行的Java虚拟机。复制代码代码如下:publicstaticvoidMethod(){longl=entTimeMillis();tln(l);();}描述系统属性信息:Propertiesroperties();该方法获取的`信...
-
Java常用数据结构及类
Java可以编写桌面应用程序、Web应用程序、分布式系统和嵌入式系统应用程序等。本文特意为大家收集整理了Java常用数据结构及类,希望大家喜欢!一、Vector类Vector类似于一个数组,但与数组相比在使用上有以下两个优点。1、使用的时候无需声明上限,随着元素的增加,Vec...