首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

面试官:说一说如何优雅的关闭线程池,:shutdownNow,面试官:粗鲁!

:“好的,然后巴拉巴拉一顿输出之前看过的build哥线程池十八问...” 面试官满意的点了点头,紧接着问道:“那你知道如何优雅的关闭线程池吗?”...输出正在执行任务 1 正在执行任务 3 正在执行任务 2 正在执行任务 4 正在执行任务 5 正在执行任务 6 正在执行任务 7 正在执行任务 8 正在执行任务 9 正在执行任务 10 shutdownNow...() /** * 尝试停止所有正在执行的任务,停止处理等待的任务, * 并返回等待处理的任务列表。...由于shutdownNow会有返回值,所以我们将上面的测试案例稍作改动后输出结果为: 这种会在控制台抛出异常的方式,同样也不优雅,所以我们继续往下看!...正在执行任务 6 正在执行任务 7 正在执行任务 8 正在执行任务 9 正在执行任务 10 线程池已停止 从输出中我们可以看到,通过将两种方法结合使用,我们监控了整个线程池关闭的全流程,实现了优雅的关闭

17410

同步只会用synchronized?如果你没用过它,面试就等着挨虐吧

:强子,看你今天气色不好,是哪里不舒服吗? 强子:你也知道的,最近正在准备跳槽,可是面了几家,都被刷了。 :不要气馁,再接再厉嘛!...来看一面的代码: ? ? ? 输出结果: ? main中m1和m2间隔1秒启动,但是在m1占有lock的时候,m2必须等待,直到m1执行unlock()方法,释放锁资源,m2才可以执行。...tryLock()方法支持有参和无参两种重载,正如上面所说,如果未指定时间,那么在获取不到锁的情况会立刻执行剩下的逻辑,那么如果设置了时间,像上面的代码中一样,等待3秒后,继续执行。...执行结果如下: ?...来看下面的小例子: ? 执行结果输出比较长,就不全部展示了,从一开始的输出可以看出,线程1 和线程2 获得锁的概率是一样大的,这就是刚才说的公平锁。

61550
  • 您找到你想要的搜索结果了吗?
    是的
    没有找到

    如何让Jupyter Notebook支持多种编程语言?

    没问题,本文一步步帮助你实现这个愿望。 ? (由于微信公众号外部链接的限制,文中的部分链接可能无法正确打开。如有需要,请点击文末的“阅读原文”按钮,访问可以正常显示外链的版本。)...如果你是初学者,建议你还是先把Python 2掌握熟练,再去尝试迁移到Python 3。至于R,也有现成的RStudio等优秀集成开发环境可以使用。 当然,如果你爱好折腾,欢迎按照本文的步骤尝试。...若是如图所示,之前的Jupyter Notebook正在运行,那么按照提示键入Control和C两个按键,退出正在运行的Jupyter Notebook。...然而在Python 3环境中,输出是这个样子的。 ? 如果你也获得了这样的输出结果,那么恭喜你,你的Python 3环境安装已经顺利完成了。 R R语言是统计学专业非常喜欢的编程语言。...我们尝试,看看是否好用。 新建一个R笔记本。随便起个名字,这里叫做“test-r”。 然后输入以下语句,之后按”Shift+Enter”来执行。

    2.6K10

    提示词(prompt)工程指南(一):提示介绍

    ---- 基础提示 您可以通过提示实现很多功能,但结果的质量取决于您提供多少信息。...让我们尝试改进一:提示: 完成下面这个句子: 天空 输出: 今天好美啊。 这样好一些了吗?...如果您正在寻找准确和事实的答案,请将其保持在低值。如果你正在寻找更多元化的回答,请将其增加到较高的值。 通常的建议是只更改其中一个。...在提示中提供例子非常有助于在特定格式获得所需的输出。 在设计提示时,您还应考虑提示的长度,因为有关长度的限制。需要考虑精确定义和详细程度。过多不必要的细节并不是一个好的方式。...您可能尝试这样做: 解释提示工程的概念。保持解释简短,只有几个句子,并且不要过于冗长。 从上面的提示中不清楚要使用多少句子和什么样的风格。

    2.1K20

    ​如何在Linux中使用grep命令?

    在上面的示例中,正在根目录下搜索的名字osanda。如果我们使用不带选项-R的命令,则将显示以下内容。 ? 重要提示:Grep命令始终在文件而不是目录中搜索关键字。...选项5:使用-i忽略大小写 在这里,创建了一个名为“ osa”的小文本文件。它在下面的同一行中包含两个单词。 ? 参见下面的-i选项如何工作 ? 3)在文件中搜索词组 ?...选项6:使用-c计数文件中的结果数 ? 上面的示例计算了/ var / log / syslog文件中有错误的行数。 选项7:使用-w搜索确切的关键字 认为您正在搜索一个名为boo的单词。...在上面的示例中,输出中忽略了关键字“ ubuntu”。因此,除了ubuntu之外,它还会列出/ etc / passwd文件中的行。...3)从包列表结果中获取mysql-server包 ? 4)检查正在运行的特定服务的进程 猜猜您需要检查已迁移的进程是否正在运行。无论您需要检查什么服务。

    3K41

    EmmyLua Attach Debugger浅析

    实际尝试结果晒图一张: 当然,因为通过并不复杂的尝试,EmmyLua挂我们自己引擎的脚本比预想中简单, 在修了一轮Bug之后, 就可以有模有样的跑起来了, 加上EmmyLua本身功能完备非常多, 这条..., 重点通过自己挂接我们自己的客户端程序和编辑器的过程碰到的问题以及解决问题的方法简单说一Backend的实现....翻开源码工程看了一, 代码结构还挺清晰的, 当时同事正在尝试替换BabeLua的AST生成模块, 反正调试这块不管用什么方式, 总是有需要的....总结 这篇文章是在尝试完EmmyLua的RemoteDebug后写的, 由于各方面的原因, 最后选择了用C++重新实现MobDebug的App端, 这部分内容会在下一篇>中再去展开, 实现RemoteDebug的C++版加深了对Attach版细节的理解, 这两个调试器EmmyLua的作者阿唐应该已经打算重构了, 对于我而言, 在处理问题的过程中熟悉了一个Lua

    3K10

    聊一聊 ReentrantLock 类的一些玩法

    假如我们构造方法里面的把true改成false,也就是非公平锁机制,在看看运行效果,结果如下: ThreadName:Thread-1, 启动了! ThreadName:Thread-2, 启动了!...,结果如下: ThreadName:Thread-0, 获取到锁 ThreadName:Thread-3, 经过3秒钟的尝试未获取到锁,放弃尝试 ThreadName:Thread-1, 经过3秒钟的尝试未获取到锁...简单的示例,如下: ReentrantLock lock = new ReentrantLock(true); System.out.println("是否公平锁:" + lock.isFair()); 输出结果如下...lock.hasQueuedThread(threadA)); System.out.println("threadB 是否处于等待状态:" + lock.hasQueuedThread(threadB)); } 输出结果如下...} finally { lock.unlock(); } } }); threadB.start(); } 输出结果如下

    19720

    记一次远程协助的排错案例(r9笔记第62天)

    正在分析的时候,他告诉说,这个数据库以前好好的,今天出了点问题,不知道怎么的监听就无法重启了。...这种情况初步感觉就是相关的SQL语句出现了问题,当然要连接数据库检查还是要征得这位网友的同意,结果使用sqlplus登录竟然毫无反应,所以数据库层面的检查工作就很有限了。...那我就从数据库日志中来尝试得到一些有用的信息,但是奇怪的是系统从昨天开始到现在竟然没有任何的日志输出,这个就极为奇怪了,总得切一次归档吧,竟然一丁点日志都没有。...最后一一杀掉会话,想这下总会可以了吧,没想到这次确实有效果了,CPU资源一子释放了,建议这位网友尝试重启数据库,看看是否有大问题,但是在远程运行sqlplus -v竟然没有任何反应,所以感觉问题又出现了...在这种情况,sqlplus没有响应,后面的工作是压根没法做了。

    79450

    Jupyter Notebook 五大效率插件!

    ,可以看看下面的复杂版。...ExecuteTime 的输出 的确有更好的计时方法,如 %%timeit,但 ExecuteTime 易于实现,且可以覆盖 notebook 中的所有单元格。...5、隐藏代码输入:隐藏过程,展示结果 虽然有些人喜欢看到某项艰苦工作的具体分析,但有些人却只想看到结果。隐藏所有输入的插件让你能够立即隐藏 notebook 中的所有代码,只保留结果。...隐藏所有代码 下一次如果有人说他们只想看结果,你只要单击一就可以了。(不过你还是得经常检查代码。) 以上是最常用的五种扩展插件,你还可以尝试其他扩展插件。...如果你正在写生产代码,你可能会更愿意花些时间学习 IDE(喜欢 VS Code),但 Jupyter Notebook 仍然是数据科学工作流程中不可或缺的一部分。

    50840

    Jupyter Notebook 五大效率插件!

    ,可以看看下面的复杂版。...ExecuteTime 的输出 的确有更好的计时方法,如 %%timeit,但 ExecuteTime 易于实现,且可以覆盖 notebook 中的所有单元格。...5、隐藏代码输入:隐藏过程,展示结果 虽然有些人喜欢看到某项艰苦工作的具体分析,但有些人却只想看到结果。隐藏所有输入的插件让你能够立即隐藏 notebook 中的所有代码,只保留结果。...隐藏所有代码 下一次如果有人说他们只想看结果,你只要单击一就可以了。(不过你还是得经常检查代码。) 以上是最常用的五种扩展插件,你还可以尝试其他扩展插件。...如果你正在写生产代码,你可能会更愿意花些时间学习 IDE(喜欢 VS Code),但 Jupyter Notebook 仍然是数据科学工作流程中不可或缺的一部分。

    91631

    推荐Jupyter Notebook 五大效率插件!

    ,可以看看下面的复杂版。...ExecuteTime 的输出 的确有更好的计时方法,如 %%timeit,但 ExecuteTime 易于实现,且可以覆盖 notebook 中的所有单元格。...5、隐藏代码输入:隐藏过程,展示结果 虽然有些人喜欢看到某项艰苦工作的具体分析,但有些人却只想看到结果。隐藏所有输入的插件让你能够立即隐藏 notebook 中的所有代码,只保留结果。...隐藏所有代码 下一次如果有人说他们只想看结果,你只要单击一就可以了。(不过你还是得经常检查代码。) 以上是最常用的五种扩展插件,你还可以尝试其他扩展插件。...如果你正在写生产代码,你可能会更愿意花些时间学习 IDE(喜欢 VS Code),但 Jupyter Notebook 仍然是数据科学工作流程中不可或缺的一部分。

    2.8K50

    【译】Windows的Docker Machine - 如何设置你的Docker主机

    原因有很多,可以肯定的是,喜欢折腾最新的技术,而且最好能帮忙实现一到两个示例的demo出来。和我的其他同事们不一样的是,在Windows上运行的设,如同大多数中间件开发人员一样。...所以,来尝试吧。 在开始使用Docker或Machine之前,还有一件事情必须要完成。那就是去获取 Windows的Git (又名msysgit)。...主要是因为想知道它实际在的设备上实际上完成了什么操作。于是尝试了一,如果你决定不使用打包安装方案,那么这里就是分拆单独安装的方法。从虚拟化解决方案开始。...使用Machine创建Docker主机 一切只需要一个简单的命令: docker-machine create --driver virtualbox dev 输出结果应该是: ←[34mINFO←[0m...现在你需要找出主机正在运行在哪个IP地址。

    1.1K50

    训练的神经网络不工作?一文带你跨过这37个坑

    但是预测结果出来了:全部都是零值,全部都是背景,什么也检测不到。质问我的计算机:「做错了什么?」,它却无法回答。...例如,不止一次混淆了图像的宽度和高度。有时,错误地令输入数据全部为零,或者一遍遍地使用同一批数据执行梯度下降。因此打印/显示若干批量的输入和目标输出,并确保它们正确。 2....实现的问题 16. 试着解决某一问题的更简易的版本。 这将会有助于找到问题的根源究竟在哪里。例如,如果目标输出是一个物体类别和坐标,那就试着把预测结果仅限制在物体类别当中(尝试去掉坐标)。 17....通常情况,损失可能会有些不正确,并且损害网络的性能表现。 19. 核实损失输入 如果你正在使用的是框架提供的损失函数,那么要确保你传递给它的东西是它所期望的。...同样,初始化也许会给你带来坏的局部最小值,因此尝试不同的初始化,看看是否有效。 29. 改变你的超参数 或许你正在使用一个很糟糕的超参数集。如果可行,尝试网格搜索。 30.

    1.1K100

    Windows的Docker Machine - 如何设置你的Docker主机

    最近一直在折腾Docker。原因有很多,可以肯定的是,喜欢折腾最新的技术,而且最好能帮忙实现一到两个示例的demo出来。...所以,来尝试吧。 在开始使用Docker或Machine之前,还有一件事情必须要完成。那就是去获取 Windows的Git (又名msysgit)。...主要是因为想知道它实际在的设备上实际上完成了什么操作。于是尝试了一,如果你决定不使用打包安装方案,那么这里就是分拆单独安装的方法。从虚拟化解决方案开始。...使用Machine创建Docker主机 一切只需要一个简单的命令: docker-machine create --driver virtualbox dev 输出结果应该是: ←[34mINFO←[0m...现在你需要找出主机正在运行在哪个IP地址。

    2.1K110

    知道你会用Jupyter Notebook,但这些插件你都会了吗?

    较长版教程 如果你觉得上面的教程太简单,可以看看下面的复杂版。还列出了最喜欢的五个扩展插件。 什么是 notebook 扩展插件?...这样会显示你选择了哪一个目录以及哪一个正在运行: ?...ExecuteTime 的输出 的确有更好的计时方法,如 %%timeit,但 ExecuteTime 易于实现,且可以覆盖 notebook 中的所有单元格。...隐藏所有代码 下一次如果有人说他们只想看结果,你只要单击一就可以了。(不过你还是得经常检查代码。) 以上是最常用的五种扩展插件,你还可以尝试其他扩展插件。...如果你正在写生产代码,你可能会更愿意花些时间学习 IDE(喜欢 VS Code),但 Jupyter Notebook 仍然是数据科学工作流程中不可或缺的一部分。

    1.8K40
    领券