创建线程的两种方式:
第一种
定义类继承Thread,复写Thread类中run方法,调用线程的start方法。
run方法中存储的要运行的代码。
第二种方式
定义类实现Runnable接口,覆盖Runnable接口中的run方法,通过Thread类建立线程,
将Runnable接口的子类对象作为实际参数传递给Thread类的构造函数,调用Thread类的start方法开启线程并调用Runnable接口子类的run方法。
多线程具有随机性。
多线程同步的前提:
必须要有两个或两个以上的线程,
必须是多个线程用一个锁,
必须保证一个线程在运行。
同步的好处:解决了多线程的安全问题。
同步的弊端:多个线程需要判断同一个锁,较为消耗资源。
同步函数使用的锁是this,被静态修饰的同步函数用的锁是该方法所在类的字节码文件,类名.class。
|
|