简述“线程安全”的含义,分析和修改下列程序。

简述“线程安全”的含义,分析下列程序是否线程安全。该程序可能抛出哪种异常?给出一个引起该异常的运行时实例,并使用线程同步方法修改该程序,使它变得线程安全。

class MyThread extends Thread { 
    static int array[] = new int[10000]; 
    static int n_size = 0; 
    public void run() { 
        while (size < 10000) 
            array[n_size++] = n_size; 
    } 
} 

public class Main {  
    public static void main(String args[]) {   
        (new MyThread()).start();
        (new MyThread()).start();  
    } 
}

线程安全是多线程编程时的计算机程序代码中的一个概念。在拥有共享数据的多条线程并行执行的程序中,线程安全的代码会通过同步机制保证各个线程都可以正常且正确的执行,不会出现数据污染等意外情况。