java中线程机制,一开始我们都用的单线程。现在接触到多线程了。
多线性首先要解决的问题是:创建线程,怎么创建线程的问题;
1、线程的创建:
四种常用的实现方法
1.继承Thread。
Thread是java.lang包下面的,所以不需要引包。继承Thread再通过重写run方法,最后再调用start()。这里的start方法相当于就绪状态,
而run方法则相当于 执行状态。从就绪转到执行。他们之间的关系类似于paint方法跟repaint方法。
这是最常用的的一种方法,但是这种方法有一个确定,因为java中是单继承的,当继承了这个类之后,就不能再去继承其他类。
2.实现Runnable接口。也是在类中实现run方法。
这种方法比上面的一种方法更灵活。所以经常被使用
3.以匿名内部类的方式
在程序中用匿名内部类的方式创建线程比较简单、方便,而且还可以调用类中的属性和方法。在向此内部类中的run方法传递参数时,要把参数的类型
定义为final类型。
4.继承TimerTask类实现线程的定时执行
使用多线程的还有可能是因为程序中要定时执行某些任务而又不能暂停当前的工作,比如说闹钟的设定。JDK中提供了两个类来实现此功能。
一个是可做为一个独立线程对象运行的实现了Runnable接口的java.util.TimerTask类;另外一个是调度TimerTask对象定时运行的java.util.Timer类。
这两种经常调用 schedule()方法。
java中用来创建线程的主要是上面的四种方法。
2、线程的同步:
线程的同步主要使用的有两种方法:
一种是在方法前面加上关键字synchronized给方法加锁
另一种是在run方法里面加上synchronized(obj){}给线程加锁。
大致就是这些,还有些不常用的以后遇到再说。
任重而道远