------- android培训、java培训、期待与您交流! ----------
多线程
(1)多线程
A:进程:程序的一次执行过程。
B:线程:线程是进行的执行单元。
C:任何一个应用程序,都至少有一条执行路径。
D:单线程程序:应用程序只有一条执行路径。
E:多线程程序:应用程序有多条执行路径。
(2)jvm启动的时候是多线程的。
假如jvm的启动时单线程的,就可能存在着内存溢出的隐患。所以,jvm启动是多线程的。至少有两个,主线程和垃圾回收线程。
(3)java中实现多线程的方式
A:继承Thread类
步骤:
**自定义类继承Thread类
**重写run方法
**创建自定义类的对象
**调用start方法
代码体现:
public class ThreadDemo extends Thread
{
public void run()
{
//code
}
}
public class ThreadDemoTest
{
public static void main(String[] args)
{
ThreadDemo td1 = new ThreadDemo();
ThreadDemo td2 = new ThreadDemo();
td1.start();
td2.start();
}
}
B:实现Runnable接口
步骤:
**创建自定义类实现Runnable接口
**在自定义类中实现Runnable接口中的run方法
**创建自定义类对象,并把该对象作为参数传递给
Thread类的构造方法来创建Thread的对象
**调用start方法
代码体现:
public class RunnableDemo implements Runnable
{
public void run()
{
//code
}
}
public class RunnableDemoTest
{
public static void main(String[] args)
{
RunnableDemo rd = new RunnableDemo();
Thread t1 = new Thread(rd);
Thread t2 = new Thread(rd);
t1.start();
t2.start();
}
}
(4)Thread类中的常用的几个小方法
A:String getName():获取线程的名称
B:static Thread currentThread():获取当前线程的对象的引用
C:void setName(String name):通过set方法设置线程对象的名称。
D:Thread(String name):通过构造方法设置线程对象的名称。
(5)线程的随机性原理
CPU的特点:在同一时刻,只能有一个线程执行。多个线程其实是在抢占CPU的资源。而CPU在这些线程中做着高速的切换
2:线程同步
(1)产生线程安全的原因:1.多个线程访问出现延迟。2.线程访问的随机性
(2)如果判断一个线程程序有没有安全问题呢?
A:多个线程操作共享数据
B:这个操作是分多条语句执行的。
(3)解决线程安全问题的方式
A:同步代码块
B:格式:
synchronized(对象)
{
//需要被同步的代码
}