标签:des style io 使用 java ar 数据 问题 sp
1:进程和线程
进程:运行一个程序,程序在内存分配了运行空间。在内存起了一个进程。
线程:在进程中运行。多个线程之间可以进行相互的切换。
主线程
子线程:子线程都是从主线程中分配出来的。
3:在Java中创建多线程
1:继承Thread类:
2:实现Runable接口:
继承Thread类与实现Runable接口的区别:
Java只支持单继承,一旦一个类继承了Thread类的话,就不能再继承其它的类了。
以前老的实现方式
stop/destory方法。会引起死锁(结合迭代器与集合的方式理解死锁)
现在新的方式:
6:为什么要使用线程同步:
A:当多个线程同时访问一个资源时,会造成资源数据的不同步。因此要对资源加锁。
这一加锁的过程,就是在线程并发时,只有一个线程能够访问到该资源。因此叫做
线程的同步。
7:锁的概念
8:到底锁什么:
锁住当前方法(当前变量)所在的对象和类。
synchronized(同步)
asynchronized(异步)
9:怎么实现线程同步:
A:方法同步。
B:代码块同步:
方法同步与代码块同步的区别:
方法同步:锁住当前方法所在的对象。因此执行整个方法直到完成,一直锁住当前对象。
代码块同步:对象的锁只在执行synchronized这一部分的代码块。其它的代码块也会出
现线程同步的问题。
synchronized (this) {
count = count + 1;
try {
Thread.sleep(2000);
} catch (Exception e) {
e.printStackTrace();
}
System.out.println("当前线程=" + Thread.currentThread().getName()
+ ",Count值 =" + count);
}
System.out.println(count);
10:锁的粗粒度:
锁的粗粒度只能在代码块同步中更改锁的大小。方法的同步的是没有办法更改的。
11:线程之间的协作:
wait();/notify();
标签:des style io 使用 java ar 数据 问题 sp
原文地址:http://blog.csdn.net/wobendiankun/article/details/39117905