多线程中Thread和Runable的区别

Thread是新开辟了一个内存空间,操作的数据具有独立性
Runable没有新开辟空间,操作的数据具有公用性
举例说明:用Thread对一个数据进行多线程处理,比如新建了两个线程
分别打印String s=a;那么打印出来将会是:a1,a1,a2,a3,a2,a3;为两次,而且很完整的数据


image.png

image.png

用Runable:a1,a3,a2;只有一组数据,但是顺序很乱


image.png

image.png

image.png

要在run方法之前加上synchronized关键字,要不然会出现抢资源的情况

你可能感兴趣的:(多线程中Thread和Runable的区别)