码迷,mamicode.com
首页 > 其他好文 > 详细

日常小记

时间:2018-06-18 19:54:27      阅读:125      评论:0      收藏:0      [点我收藏+]

标签:jvm   runnable   接口   存储   空间   代码   实例   状态   缺点   

1、什么是线程

线程是操作系统能够运行调度的最小单位,它被包含在进程中,是进程中的实际运作单位。可以通过使用多线程对计算密集型任务提速。多线程有个缺点,是任何一个线程挂掉都可能直接造成整个进程崩溃,因为所有线程共享进程的内存。

2、线程和进程的一些区别

 线程是进程的子集,即一个进程可以有多个线程(假若一个线程的占内存为1MB,系统内存为2GB,则最多开2048个线程),每个线程并行执行不同的任务。不同的进程使用不同的内存空间,而所有的线程共享一片相同的内存空间,但每个线程都拥有单独的栈内存用来存储本地数据。

3、如何在Java中实现多线程

1)继承Thread 类,重写run()方法。java.lang.Thread 类本质上是实现了java.lang.Runnable接口的一个实例,且启动线程的唯一方法是通过Thread 类的start()方法。该方法是一个native(本地)方法,它将启动一个新线程,并执行run()方法。调用start()方法后并不是立即执行多线程代码,而是将线程变为可运行态,什么时候运行多线程代码由操作系统决定。

2)实现Runnable接口,并实现该接口的run()方法。

  主要步骤为:1.自定义类并实现Runnable接口,实现run()方法。

        2.创建Thread 对象,用实现Runnable接口的对象作为参数实例化该Thread 对象。

        3.调用Thread 的start()方法。

4、用Runnable还是Thread

Java不支持类的多重继承,但允许实现多个接口。如果在实现线程的时候要继承其他类,则应实现Runnable接口比较好。

5、start()和run() 方法有什么区别

start()方法被用来启动新创建的线程,是该线程处于就绪状态,则这个线程可被JVM来调度执行。在调度过程中,JVM通过调用线程类的run()方法来完成实际操作,当run()方法结束,线程终止。

直接调用run() 方法,该方法会被当做一个普通的函数调用。

通俗的说,start()方法被用来启动新创建的线程,而且start()内部调用了run()方法。而直接调用run()方法时,只会是在原来的线程中调用,没有新的线程启动。

日常小记

标签:jvm   runnable   接口   存储   空间   代码   实例   状态   缺点   

原文地址:https://www.cnblogs.com/HwyStudy/p/9195889.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!