-------
android培训、
java培训、期待与您交流! ----------
------- android培训、 java培训、期待与您交流! ---------- 详细请查看: http://edu.csdn.net/heima/
一.创建线程
***1.继承Thread
Thread定义:
定义一个类,然后继承Thread,
格式:class 类名 extends Thread {
//..定义方法
}
线程调用:
//匿名对象调用;
new 类名().start();
//对象调用:
类名 变量名 = new 类名();
变量名.start();
***2.实现Runnable
Runnable定义:
定义一个类,然后实现Runnable,
格式:class 类名 implements Runnable {
public void run();//..定义run方法
}
线程调用:
//先创建一个实现了Runnable的对象(比如说对象名为r),然后创建一个Thread对象(比如说对象名为t)。
然后将对象-run,传入到-thr中,调用Thread的start方法。
格式:t(r).start();
3.使用匿名内部类
方法1:new Thread(){
public void run();//..定义run方法
}.start();
方法2:new Thread(new Runnable(){
public void run();//..定义run方法
}).start();
二.线程常用方法
1.currentThread
currentThread();它是Thread的一个静态方法,它的返回值是一个Thread类型,作用是来获取当前线程
调用:Thread.currentThread();
2.getName, setName
setName();设置线程的名字;
getName();获得线程的名字;
3.sleep
使线程休眠。
4.setDaemon
守护线程。守护线程不会单独运行
5.join
加入线程。当前线程暂停, 等待指定线程执行完毕后再继续
三.同步
1.什么是同步
在多线程并发访问同一资源时, 有可能出现线程安全问题.
为了解决这种问题, 我们就可以使用同步技术.
将多个线程访问资源的代码进行同步.
* 2.同步代码块
将需要同步的代码放在 synchronized(){} 代码块中, 在小括号中指定锁对象
多段使用相同锁的同步代码块, 同一时间只能执行一个, 必须等待一个执行结束后其他的才能继续执行
* 3.同步方法
如果整个方法内的代码都需要同步, 可以在方法前加上synchronized修饰
只有在同一个类中的几个方法可以使用同步方法的形式进行同步, 如果不同类中的几个方法想要同步, 必须使用同步代码块
因为同步方法默认使用this作为锁对象
4.死锁
多线程并发执行时, 如果多段同步代码嵌套使用, 有可能互相冲突产生死锁, 导致程序阻塞.
在编程的过程中尽量不要将同步代码嵌套使用, 避免产生死锁.
四.通信
1.什么是通信
在多线程并发执行的时候, 可以使用wait()和notify()方法在多个线程间互相通信
2.怎么使用
通信的代码必须写在同步代码中, 必须使用锁对象来调用wait()和notify()
wait()方法可以控制当前线程等待, 直到其他线程调用notify()或者notifyAll()方法才被唤醒
------- android培训、 java培训、期待与您交流! ---------- 详细请查看: http://edu.csdn.net/heima/