码迷,mamicode.com
首页 > 编程语言 > 详细

多线程基础

时间:2017-07-31 01:02:01      阅读:206      评论:0      收藏:0      [点我收藏+]

标签:而且   new   rup   sync   wait   syn   线程安全   dex   static   

多线程是多进程的基础,一个进程可以有多个线程.

Object obj=new Object();
Thread t=new Thread(new Runnable(){public void run{synchronized(obj) {} } } );//代码块执行

class person extends Thread

{

@Override

public void run()

{

synchronized(obj)

{

}

}

}


synchronized 代码块和synchronized方法 申请锁.

obj.wait() /obj.notify() 写在 synchronized里面

一个对象的多个线程必须申请同一把锁.而且若有属于这个对象的进程没有申请锁就会导致其他的申请失效,引起线程安全的问题.

 

package com.rupeng.thread;

public class ThreadTest2
{
public static void main(String[] args)
{
Object obj = new Object();

Thread t1 = new Thread(new Runnable()
{
@Override
public void run()
{
synchronized (obj)
{
try
{
System.out.println("t1即将wait");
obj.wait();
System.out.println("t1收到通知,执行完成");
} catch (InterruptedException e)
{
e.printStackTrace();
}
}
}
});

Thread t2 = new Thread(new Runnable()
{
@Override
public void run()
{
synchronized (obj)
{
System.out.println("t2准备通知t1了");
obj.notify();
}
}
});

t1.start();
t2.start();
}
}

多线程基础

标签:而且   new   rup   sync   wait   syn   线程安全   dex   static   

原文地址:http://www.cnblogs.com/yqwstart2017/p/7260828.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!