线程基础

常见理解

线程的生命周期
线程创建的两种方式

1.第一二中比较常见,不过多赘述,严格意义说只有两种创建方式,第三种其实也是实现的Runnable,有返回值,并且是阻塞的,sleep10s后方法执行完以后就会接着执行

如何让线程停止下来

虽然Thread.stop()能让线程停止,但是这种方法不推荐,属于暴力停止,下面看看有什么方法

第一版线程停止

虽然userThread发送中断信号,但是不会停止


第二版

此时依然发起中断信号,但是run函数判断是否拦截,默认为false,当发现变为true,那么就中断停止,同理Runnable的run也是一样的,你可能会问为什么第二次就停止了,第一次为什么不停止,因为第一的判断条件并没有关联到intercepted(),while(true)是死循环,线程不会死亡,一直在执行,当第二次中断作为条件时,为true run方法就会走完,线程会死亡


发生异常将intercept状态重置为false

如果main函数中发出中断信号,那么代码中发生异常此时会重置为false,线程不会中断,只有在catch中再讲中断信号重置为true,才会中断成功,所以如果想中断,还要记得此处


守护线程

前提主线程睡了10秒后主线程会结束,开启子线程前将t线程作为主线程的守护线程,10秒过后主线程死亡,守护线程也会跟着死亡

如何让线程按顺序执行


线程使用join顺序执行

首先如果不加t1.join(),那么cpu会切换线程执行,输出结果就是一会打印A一会打印B,加了以后t1获得了cpu的执行权,一定会再t1执行结束后才会执行t2,输出结果A打印99次以后B再打印99次

面试总结

【面试题】:什么是进程和线程

回答:进程是操作系统处理的最小单元,线程是处理器cpu处理的最小单元。一个进程至少一个线程 或 多个线程,如果一个进程,还有一个线程没有杀掉还存活,那么进程还存活 (线程依附进程)。

【面试题】:并行和并发区别

回答

一、意思不同

1、并发:并发是指两个或多个事件在同一时间间隔发生。

2、并行:并行是指两个或者多个事件在同一时刻发生。

二、侧重不同

1、并发:并发侧重于在同一实体上。

2、并行:并行侧重于在不同实体上。

三、处理不同

1、并发:并发在一台处理器上“同时”处理多个任务。

2、并行:并行在多台处理器上同时处理多个任务。

个人理解:并发是一个处理器cpu在单位时间内切换不同的线程进行执行任务,吞吐量

                  并行是多个处理器在同一时间处理多个线程进行执行任务

【面试题】 就是 run 和start的区别 ?

答:run是函数调用 和线程没有任何关系, .start会走底层 会走系统层 最终调度到 run函数,这才是线程。

【面试题】 如何控制线程的执行顺序 ?

答:join来控制cpu让指定线程获取执行权力,能够做到顺序执行

【面试题】 多线程中的并行和并发是什么?

答:四个车道,四辆车并行的走,就是并行,  四个车道中,五秒钟多少的车流量,多少的吞吐量

【面试题】在Java中能不能指定CPU去执行某个线程?

答:不能,Java是做不到的,唯一能够去干预的就是C语言调用内核的API去指定才行,这个你回答的话,面试官会觉得你研究点东西

【面试题】在项目开发过程中,你会考虑Java线程优先级吗?

答:不会考虑优先级,为什么呢? 因为线程的优先级很依赖与系统的平台,所以这个优先级无法对号入座,无法做到你想象中的优先级,属于不稳定,有风险

因为某些开源框架,也不可能依靠线程优先级来,设置自己想要的优先级顺序,这个是不可靠的

例如:Java线程优先级又十级,而此时操作系统优先级只有2~3级,那么就对应不上

【面试题】sleep和wait又什么区别?

答:sleep是休眠,等休眠时间一过,才有执行权的资格,注意:只是又有资格了,并不代表马上就会被执行,什么时候又执行起来,取决于操作系统调度

wait是等待,需要人家来唤醒,唤醒后,才有执行权的资格,注意:只是又有资格了,并不代表马上就会被执行,什么时候又执行起来,取决于操作系统调度

含义的不同:sleep无条件可以休眠, wait是某些原因与条件需要等待一下(资源不满足)

【面试题】 在Java中能不能强制中断线程的执行?

答:虽然提供了 stop 等函数,但是此函数不推荐使用,为什么因为这种暴力的方式,很危险,例如:下载图片5kb,只下载了4kb 等

我们可以使用interrupt来处理线程的停止,但是注意interrupt只是协作式的方式,并不能绝对保证中断,并不是抢占式的

【面试题】 如何让出当前线程的执行权?

答:yield方法,只在JDK某些实现才能看到,是让出执行权

【面试题】sleep,wait,到底那个函数才会 清除中断标记?

答:sleep在抛出异常的时候,捕获异常之前,就已经清除

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 214,717评论 6 496
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 91,501评论 3 389
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 160,311评论 0 350
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 57,417评论 1 288
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 66,500评论 6 386
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 50,538评论 1 293
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 39,557评论 3 414
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 38,310评论 0 270
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 44,759评论 1 307
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 37,065评论 2 330
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 39,233评论 1 343
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 34,909评论 5 338
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 40,548评论 3 322
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 31,172评论 0 21
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 32,420评论 1 268
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 47,103评论 2 365
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 44,098评论 2 352