您现在的位置: 主页 > 嵌入式操作系统 > Linux > Java中线程的使用
本文所属标签:
为本文创立个标签吧:

Java中线程的使用

来源:net 网络用户发布,如有版权联系网管删除 2018-07-14 

简单的使用线程

1 . 扩展java.lang.Thread类

2 . 实现java.lang.Runnable接口

/** * 实现Runnable接口的类 */ publicclass DoSomethingimplements Runnable { private String name; publicDoSomething(String name) { this.name = name; } publicvoid run() { for (int i = 0; i < 5; i++) { for (long k = 0; k < 100000000; k++) ; System.out.println(name + ": " + i); } } }

/** * 测试Runnable类实现的多线程程序 */ publicclassTestRunnable { publicstaticvoid main(String[] args) { DoSomething ds1 = new DoSomething("阿三"); DoSomething ds2 = new DoSomething("李四"); Thread t1 = new Thread(ds1); Thread t2 = new Thread(ds2); t1.start(); t2.start(); } }

线程的同步与锁

线程的同步是为了防止多个线程访问一个数据对象时,对数据造成的破坏。

例如:两个线程ThreadA、ThreadB都操作同一个对象Foo对象,并修改Foo对象上的数据。

publicclassMyRunnableimplementsRunnable {private Foo foo =new Foo(); public staticvoid main(String[] args) { MyRunnable r = new MyRunnable(); Thread ta = new Thread(r,"Thread-A"); Thread tb = new Thread(r,"Thread-B"); ta.start(); tb.start(); } publicvoidrun() { for (int i = 0; i < 3; i++) { this.fix(30); try { Thread.sleep(1); } catch (InterruptedException e) { e.printStackTrace(); } System.out.println(Thread.currentThread().getName() + " :当前foo对象的x值= " + foo.getX()); } } publicint fix(int y) { return foo.fix(y); } }

运行结果:

Thread-B :当前foo对象的x值=40Thread-A :当前foo对象的x值=40Thread-B :当前foo对象的x值=-20Thread-A :当前foo对象的x值=-20Thread-B :当前foo对象的x值=-80Thread-A :当前foo对象的x值=-80



              查看评论 回复



 线程 当前 对象

网站地图

围观()