-
shell:当你运行while true的时候,你实际在做什么?
2017-08-25 22:08:49shell当你运行while true的时候,你在做什么? 在写shell死循环时,可能会经常用到下面的方式 while true do do something here done 其实,这里的true是一个/bin下面的可执行文件,同样的,false也是。 true什么...shell当你运行while true的时候,你在做什么?
在写shell死循环时,可能会经常用到下面的方式
while true
do
do something here
done
其实,这里的true是一个/bin下面的可执行文件,同样的,false也是。 true什么也不做,返回一个表示成功的值。false什么也不做,返回一个表示错误的值:
qingsong@db2a:/tmp$ which true
/bin/true
qingsong@db2a:/tmp$ which false
/bin/false
qingsong@db2a:/tmp$ true
qingsong@db2a:/tmp$ echo $?
0
qingsong@db2a:/tmp$ false
qingsong@db2a:/tmp$ echo $?
1
详细一点说明如下:
NAME
true - do nothing, successfully
SYNOPSIS
true [ignored command line arguments]
true OPTION
DESCRIPTION
Exit with a status code indicating success.
=====
NAME
false - do nothing, unsuccessfully
SYNOPSIS
false [ignored command line arguments]
false OPTION
DESCRIPTION
Exit with a status code indicating failure.
所以,每执行一次while true,就会调用true命令,生成一个新的进程,完成之后,再销毁这个进程,由可能导致性能的损失。为了避免,可以使用shell内置命令“:”,它总是返回0退出码:
qingsong@db2a:/tmp$ :
qingsong@db2a:/tmp$ echo $?
0 -
为什么用do..while循环的时候,要特地建一个boolean类型的变量来当开关?
2020-05-18 16:21:38//用count这些不行吗? public class Test4 { public static void main(String[] args) { int count =1;... System.out.println("正在进行第" + count + "次练习");... }while(!isOk); } } -
使用wait的时候,什么要使用while
2016-10-26 17:05:51使用wait的时候,什么要使用while: 你或许有多个任务为同样的原因等待同样的锁, 并且第一个唤醒的任务或许已经改变了情况(甚至你不这么做,但是继承你的类可以这么做)。如果是这种情况,那么这个task就应该被暂停,...使用wait的时候,什么要使用while:
你或许有多个任务为同样的原因等待同样的锁, 并且第一个唤醒的任务或许已经改变了情况(甚至你不这么做,但是继承你的类可以这么做)。如果是这种情况,那么这个task就应该被暂停,直到满足条件。
当这个任务从它的等待状态中唤醒的时候,可能其他的任务已经改变了状态,以致于这个任务不能运行。只能继续等待。
还有情况是你的object lock可能被多种原因在等待(在这种情况下,你就必须用notifyAll()).这种情况下,你需要检查是否唤醒的是否正确,如果不是对应的唤醒,那么就必须继续wait()
此外:
什么是object monitor?
根据jdk 7的api来看:
This method should only be called by a thread that is the owner of this object’s monitor. A thread becomes the owner of the object’s monitor in one of three ways:
- By executing a synchronized instance method of that object.
- By executing the body of a synchronized statement that synchronizes on the object.
- For objects of type Class, by executing a synchronized static method of that class.
Only one thread at a time can own an object’s monitor.
notify方法只能被这个object的monitor拥有者调用。一个线程有三种方法成为这个object的monitor:
- 执行同一个instance的synchronized方法。
- 执行同一个instance的synchronized的block。
- 执行同一个Class, 执行静态的synchronized方法。
-
while(cin>>word)在什么时候结束此循环的问题
2018-09-27 19:57:55在c++编程中我们难免会遇到这种问题就是,当 使用while(cin>>word)这种循环时,编译运行往往会出现循环不能终止的状况,所以我们有了不知道如何结束这种循环的疑惑。 在 Unix 系统中的实际的现象...在c++编程中我们难免会遇到这种问题就是,当 使用while(cin>>word)这种循环时,编译运行往往会出现循环不能终止的状况,所以我们有了不知道如何结束这种循环的疑惑。
在 Unix 系统中的实际的现象为:
* 当输入为“字符串,回车,Ctrl+D”的时候,跳出循环;
* 当输入为“字符串,Ctrl+D,回车”的时候,不会跳出循环;
* 当输入为“字符串,Ctrl+D,回车,Ctrl+D”的时候,跳出循环;
* 当输入为“字符串,Ctrl+D,Ctrl+D”的时候,跳出循环;--------------------- 本文来自 MISAYAONE 的CSDN 博客
具体原因解释如下:
输入(cin)缓冲是行缓冲。当从键盘上输入一串字符并按回车后,这些字符会首先被送到输入缓冲区中存储。每当按下回车键后,cin 就会检测输入缓冲区中是否有了可读的数据。cin 还会对键盘上是否有作为流结束标志的 Ctrl+Z 或者 Ctrl+D 键按下作出检查,其检查的方式有两种:阻塞式以及非阻塞式。 阻塞式检查方式指的是只有在回车键按下之后才对此前是否有 Ctrl+Z 组合键按下进行检查,非阻塞式样指的是按下 Ctrl+D 之后立即响应的方式。如果在按 Ctrl+D 之前已经从键盘输入了字符,则 Ctrl+D的作用就相当于回车,即把这些字符送到输入缓冲区供读取使用,此时Ctrl+D不再起流结束符的作用。如果按 Ctrl+D 之前没有任何键盘输入,则 Ctrl+D 就是流结束的信号。
阻塞式的方式有一个特点:只有按下回车之后才有可能检测在此之前是否有Ctrl+Z按下。还有一个特点,如果输入缓冲区中有可读的数据则不会检测 Ctrl+Z(因为有要读的数据,还不能认为到了流的末尾)。还有一点需要知道,Ctrl+Z产生的不是一个普通的ASCII码值,也就是说它产生的不是一个字符,所以不会跟其它从键盘上输入的字符一样能够存放在输入缓冲区。
window系统一般采取阻塞式检查所以如果出现上述情况则采用Ctrl+Z的方式来结束循环。
具体什么意思我只能了解一个大概,不能深入了解,所等以后知识丰富了,再来更新此篇微博。
谢谢!
-
while用法_while 用法一次搞懂英语while跟when的用法差异
2020-12-12 13:35:39究竟什么时候应该用while,以及什么时候应该用when呢。下面列出while/when的英语用法、英语例句,跟中文意思,赶快学起来吧。1.while 两个句子都是正在进行式,要用while当前后两个句子,都是正在进行式的时候,通常...while的英语用法常常跟when被混淆,毕竟while跟when的中文意思都是指「当…的时候」。究竟什么时候应该用while,以及什么时候应该用when呢。
下面列出while/when的英语用法、英语例句,跟中文意思,赶快学起来吧。
1.while 两个句子都是正在进行式,要用while
当前后两个句子,都是正在进行式的时候,通常要用while。
例:I’m playing a video game while my husband is working.
当我老公在工作的时候,我在打游戏。
说明:这里有两个正在进行式,一个是”I’m playing a video game”,一个是“my husband is working”,所以用while。
例:I was watching TV while my father was sleeping.
当我爸在睡觉的时候,我在看电视。
说明:这里同样是前后两个正在进行式,所以用while。
2.when 两个单一行为(非正在进行式),用when。
当前后两个都是单一行为的时候,通常用when。而且前后两个单一行为,通常是紧接着发生的。
例:I picked up the phone when it rang.
电话响起时,我接起来了。
说明:前后是两个单一行为,而且接电话紧接着电话响起之后发生,这边用when。
例:When I get home, I take off my shoes.
当我回到家,我拖鞋。
说明:前后两个都不是正在进行式,所以用when。
3.while/when 一个正在进行式,一个单一行为(正在进行式前面可接while或when)
假如前后两个句子,分别是一个正在进行式,一个单一行为时,则正在进行式前面可接while或是when。
例:He called while/when I was sleeping.
我在睡觉时他打来了。(这里用while或when都可以)
例:I got into an accident while I was driving home.
我开车回家时发生意外了。
例:I got into an accident when I was driving home.
我开车回家时发生意外了。
4.when 一个正在进行式,一个单一行为(单一事件行为前面只接when)
这里要特别注意,单一事件行为前面通常只能用when,而不是while。
例:I was sleeping when he called. 他打来时我在睡觉。
说明:这里不能用while,因为”he called”是单一行为,而不是正在进行式。
例:I was driving home from work when I got into an accident.
我发生车祸时,正在开车回家。(这里用when,而不是用while,因为单一事件行为前面接when)
如果看到这里,你还是对什么时候用while,什么时候用when,搞不清楚。那么只要记得,如果前后两个句子都是正在进行式,那就用while,其馀状况就用when就可以了。
-
VBA每日一练(23)在VBA里,什么时候可以直接用 for each循环,而不用 for i= xx 或 while循环呢?
2019-12-09 16:34:021 问题:什么时候可以用 for each 进行循环? 不需要知道具体的循环变量,上下限。 答案 : 当for each xx in yyy ,只要 yyy 是 对象集合(s) 比如像workbook 这样的可数的对象的集合就可以 可以用for each 的... -
for与while的特点及其if在什么情况下使用情况
2019-03-19 01:18:00什么时候使用循环结构呢? 1:当对某些代码执行很多次时,使用循环结构完成。 2:当对一个条件进行一次判断时,可以使用if语句。 3:当对一个条件进行多次判断时,可以使用while语句。 注意:1:在使用循环时,... -
为什么当我点击登陆按钮的时候没有反应。
2015-05-06 02:09:23我希望当点击登陆按钮的时候,就会跳转到聊天界面。 package sql; import java.awt.*; import java.awt.event.*; import java.sql.*; import javax.swing.*; class liaotian extends JFrame implements ... -
do...while{0}有什么好处
2017-09-05 09:44:14当你执行一段代码到一半,想跳过剩下的一半的时候,如果你正处于do while循环中,则能用break达到这个目的。 do { 我执行. 我执行.. 我再执行… if (有什么条件满足了我) { 呀,我想跳到另外一段代码了... -
While循环
2012-05-18 23:14:23package java基础知识;... while即 当...的时候,也就是满足条件就循环执行制定的代码 * while循环的语法 while (循环条件){ * 循环操作(也叫循环体); * } * java中循环结构需要满足以下三 -
mysql里面的while里面为什么会重复输出最后一个数据
2016-08-31 20:23:54mysql里面的while运行机制是先执行再判断,当监听语句判断tag=1的时候,while里面的语句会继续执行,但是监听语句里面的tag=1会让fetch语句失效,进而接着执行1select uid语句,所以会输出两次最后一个 eg: ... -
do matlab的 while循环_JavaScript循环语句_while和do...while(十四)
2021-01-04 09:58:13目录:1.while2.do...while3.while和do...while有什么区别?一、while1.while语法格式while(表达式) { //表达式为真则执行代码块 //代码块 }2....100) { //表达式,当count的值小于100的时候,执行代码块 docu... -
为什么python运行结束了但是程序没有退出_Python中while循环的基本用法
2021-01-24 07:51:47点击蓝字关注我吧文 | 天罡君while和for都可以使程序重复执行某一段代码(又称作循环体),区别是for循环用于针对集合中的...1.while循环简介while在英语中的解释是:当......时候。在Python中的语法是:while 表达式... -
1、如果用while循环读取的话,为什么他第二次循环的时候就自动read后面的字节了呢?
2012-04-09 17:10:16这涉及到很多很多专业知识,比如文件系统等,简单来说就是,当你保存文件的时候步骤基本上是:操作系统首先在DIR区中找到空区写入文件名、大小和创建时间等相应信息,然后在Data区找到闲置空间将文件按照簇尽可能... -
为什么生产者消费者中模式中要用while作临界判断?
2019-08-21 22:51:04关于生产者模式,想必大家也... 当生产的时候需要判断容器中是否已经满,为什么这个判断需要用while而不能用if呢,例如下面代码中第7行 public class MyContainer1<T> { final private LinkedList<T&g... -
游标什么时候消失
2017-06-20 14:56:35当一个存储过程结束后,游标会: 1.消失 2.继续存在,但无效 3.继续存在,还有小 cursor 。。。。 open 。。。 while。。。 。。。。 end loop 。。。 if。。。。 else if ... -
为什么当输入空格或者是直接按enter键的时候会抛出数组越界异常
2015-11-06 04:17:14while(i!=0){ System.out.println("请输入用户名和密码,以分号分隔:"); Scanner sn=new Scanner(System.in); String userPWD=sn.nextLine(); if(userPWD!=null||!"".equals(userPWD)){ String[]... -
c++ 当输入不是int时_第七章 用户输入和while循环
2021-01-13 12:45:491、编写清晰的程序每当你使用函数input()时,都应指定清晰而易于明白的提示,准确地指出你希望用户提供什么样的信息——指出用户该输入任何信息的提示都行。有时候,提示可能超过一行,例如,你可能需要指出获取特定... -
JavaScript while循环
2020-03-21 15:16:32发展到现在也是一样,当我们需要计算机的时候,大多数让他干的是重复性的工作,这些重复性的工作有着极其相似的代码,比如,输出10次hello world’; while 循环 while 循环会在指定条件为真时循环执行代码块。 语法... -
用if、else实现一个类似自旋的操作的时候(只是练习,自旋还是用while好些),当没有抢到资源进入自旋时,...
2020-03-05 13:12:16Java中没有加锁的方法,在当前线程sleep后,执行后面部分的代码,也就是重新执行这个方法,会新起一条线程吗?为什么一定要加return呢? -
java多线程下为什么建议使用while不使用if
2018-05-03 19:22:21当有多个消费者的时候,还使用if判断是否await就会产生问题,这是因为一个生产者消费者模型的任务队列,一个消费者一次放入多个任务,然后用notifyAll通知消费者,但是并非所有被唤醒的消费者都能取到一个任务,那么... -
多线程操作中为什么使用while而不是if来做判断状态是否就绪
2015-03-10 13:28:00在多线程操作中,我们常常会遇到...以下示例展示了一个简单的生产者-消费者模型:当队列满的时候,阻塞set;当队列为空的时候,阻塞get操作。 public class EventStorage { private int maxSize; private L... -
输入循环在什么情况下结束,while(cin>>word) 类型?
2016-11-25 11:07:20最近学习了C++遇到的一个问题,Windows系统下不知道怎么结束~ C++Primer 中,作者经常使用 while(cin>>word) ...* 当输入为“字符串,回车,Ctrl+D”的时候,跳出循环; * 当输入为“字符串,Ctrl+D,回车”的时 -
JavaScript循环结构中while和do......while
2020-09-07 14:11:52While:当……则……当什么条件成立时,一直重复着 计算1-10的和 案例:GDP预测 2000年美国的GDP是142562.75亿美元,而中国是49089.82亿美元 假设美国的经济赠长率为2%,而中国是8%,预测中国什么时候能超过美国 &... -
while0表示什么意思_肝功中白蛋白、球蛋白分别表示什么意思?有何临床意义,一文详知...
2020-11-26 13:56:43随着人们生活品质的提高,越来越多的人提高了对健康的重视,也遵医嘱3-6个月检查一次身体,当大多数人拿到肝功能化验单时,有些懵,总蛋白、白蛋白、球蛋白这些指标到底是干什么的?总蛋白、白蛋白、球蛋白这些指标... -
java while嵌套_Java 语句while、do while、for循环、嵌套、for与while的区别、break continue(3)...
2021-02-12 21:13:17for循环语句,双从for嵌套:/*for(初始化表达式;循环条件表达式;循环后的操作表达式){ 执行语句; } *//*1,变量有自己的作用域。对于for来讲:如果将用于控制循环的增量... 总结: 什么时候使用循环结构? 当要对某... -
python流程控制之while
2020-06-11 17:23:11while是没有次数限制,不知道什么时候结束 只要满足条件就会无限打印 'hello world' ''' 例子2 ''' 当把 while 循环下面的子分支执行完毕以后,程序会返回while条件判断语句 是一个加强版的if ''' while 4>3: ... -
java while for_Java-循环结构(for,while)
2021-02-28 11:30:00循环语句:注意:循环一定要能确定循环从哪里开始,循环多少次,什么时候退出循环1.while循环a.语法格式:while(表达式){循环体语句;//反复做的事}规则:如果表达式为true,执行一次循环体语句,然后再次判断表达式... -
JavaScript循环结构中while和do......while的使用与区别
2020-09-07 14:16:25While:当……则……当什么条件成立时,一直重复着 计算1-10的和 案例:GDP预测 2000年美国的GDP是142562.75亿美元,而中国是49089.82亿美元 假设美国的经济赠长率为2%,而中国是8%,预测中国什么时候能超过美国 ...
-
linux系统下文件夹没有权限
-
2014年重庆理工大学《计算机专业英语》期末考试试卷.pdf
-
2021-03-03
-
股票数据网站
-
Navicat for MySQL
-
BNUZ计科一班作业第七题,负数进制
-
CSP201604-1折点计数(C++100分)
-
Java从入门到放弃篇7(for循环,while(true)死循环,if语句,创建方法,方法调用,实现图形)
-
maven.zip管理工具
-
王力安防首次公开发行股票招股说明书.pdf
-
音视频格式转换工具.rar
-
爱普生 EPSON L800_L801清零软件.zip
-
2014年重庆理工大学《计算机网络》期末考试试卷.pdf
-
IEXPath.zip
-
基于电商业务的全链路数据中台落地方案(全渠道、全环节、全流程)
-
【毕业答辩】学位论文答辩ppt指南!
-
2021年软考系统规划与管理师-上午历年真题解析视频课程
-
IFIX简单历史报警显示功能.docx
-
用Go语言来写区块链(一)
-
2014年重庆理工大学《电子商务(双语)》两套期末考试试卷.pdf