日常小记

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()方法时,只会是在原来的线程中调用,没有新的线程启动。

转载于:https://www.cnblogs.com/HwyStudy/p/9195889.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值