多线程的总结与常见问题解析2

1、请把我下面类的方法在API中找到,并使用自己的话进行描述

答案:

        Thread

        public void run() 每个线程对象 要执行的线程代码

public void start() 使该线程开始执行;Java 虚拟机调用该线程的 run 方法

public final void setDaemon(Daemon(boolean on) 将该线程标记为守护线程或用户线程

public final void stop() 强迫线程停止执行

public void interrupt() 把正在执行的等待线程,中断掉, 抛出一个中断异常 InterruptedException

public final void join() 等待该线程终止

public final int getPriority() 返回线程的优先级

public final void setPriority(int newPriority) 更改线程的优先级

public static void sleep(long millis) 在指定的毫秒数内让当前正在执行的线程休眠(暂停执行)

public static void yield() 暂停当前正在执行的线程对象,并执行其他线程

 

       

2、请写出创建线程的两种方式

答案:

        方式一:继承Thread类

        方式二:实现Runnable接口

3、请说说启动一个线程是用run()还是 start()?

答案:

启动一个线程是调用start()方法,使线程就绪状态,以后可以被调度为运行状态,一个线程必须关联一些具体的执行代码, run()方法是该线程所关联的执行代码

4、请画出多线程生命周期图

答案:

      

5、请说说线程安全问题是什么?出现问题后,如何解决?

答案:

        线程安全问题: 多个线程操作共享数据

        解决方式:把多个语句操作共享数据的代码给锁起来,让任意时刻只能有一个线程执行即可

6、请说说使用同步机制的好处与弊端?

答案:

        使用同步的前提:

  多个线程

  多个线程使用的是同一个锁对象

        同步的好处:

  同步的出现解决了多线程的安全问题

        同步的弊端:

  当线程相当多时,因为每个线程都会去判断同步上的锁,这是很耗费资源的,无形中会降低程序的运行效率

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值