java多线程
什么是多线程?
在搞懂这个问题前,要明白什么是进程,什么是线程?
打开任务管理器,以上的都是进程,由此可以得出
进程是一个应用程序或者软件。进程是进程的执行场景
如果把一个进程比做为一家公司,那么里面的员工就为线程。
进程和线程的区别?
如果把阿里巴巴跟京东比做两个进程,那么两者的资源(内存)是不可共享的。
阿里巴巴的各个人员之间有可共享的(堆内存跟方法区)跟不可共享的(栈空间)。
栈空间是独立的,一个线程一个栈
实现线程的最常用的两种方式
1.
直接继承Thread
重写父类run方法
2.
直接实现Runnable接口,重写父类run方法
然后创建线程对象
在创建Thread对象把线程对象放进去
线程start跟run方法有什么区别?
start会开启一个新的栈空间,线程跟主线程main线程可以同时运行
但是run等于只是一个普通的方法调用,不符合线程同时运行的标准