本文总结于金现代信息分公司内训。
线程:
了解什么是线程,首先要了解什么是进程,进程就是一个正在操作系统中运行的程序,比如Word,chrome,资源管理器等。线程是进程中独立运行的子任务,线程是进程中最小的执行单位,一个进程可以有多个线程,至少有一个线程。
在java中实现多线程方法有两种,一种是继承thread类,覆盖run()方法;另一种是实现runnable接口。
产生非线程安全问题,可能的一种情况是,当线程A拿到count的值,还没有改变count的值的时候,结过线程B也来拿count的值,导致线程A与B拿到的count值是一样的。如下面代码:
public class MyThread1 {
private static final int THREADS_COUNT = 20;
private static int count = 0;
private void add() {
for (int i = 0; i < 1000; i++) {
count++;
}
}
public static void main(String[] args) throws InterruptedException {
Thread[] threads = new Thread[THREADS_COUNT];//创建THREADS_COUNT个线程
for (int i = 0; i < THREADS_COUNT; i++) {
threads[i] =