$如何?表现在后台执行的功能?
想象一下,我有以下功能:
TableA | TableB
A | 4
B | 2
C |
我用这种方式多次调用它:
#!/usr/bin/env bash
doInBackground() {
#We call a function
someOtherFunction someParam
if [ $? -eq 1 ]; then
echo "was one"
else
echo "was not one"
fi
}
如果他们同时执行,$ $会是什么?返回?是否会受到其他处决的影响?在这种情况下的行为是什么?
答案 0 :(得分:1)
不,如果程序同时运行,它会自行运行,因此其他程序对它没有影响。执行时
someOtherFunction someParam
之后$?
保存此脚本执行的函数的值。为什么?在新shell 中添加&
运行进程,并且不同的shell实例之间不进行通信。这就像你打开几个终端并在每个终端窗口运行doInBackground
一次。
换句话说,让我们说例如sshd
正在运行,有人登录ssh
并且访问日志正在存储。在它之后你会调用$?
,期望返回你运行的进程的退出代码,但ssh
日志在你的程序之后完成了万亿分之一秒......获取它是不是很奇怪退出状态ssh
而不是您的计划? ;)
答案 1 :(得分:0)
重点:"如果没有给出 N ......返回代码为零。"
public class MySyncClass extends SyncObject{
private String myData;
public MySyncClass(){
super();
this.myData = "foo";
}
public String read(){
super.acquireReadLock();
String s = this.myData;
super.releaseReadLock();
return s;
}
public void write(String s){
this.acquireWriteLock();
this.myData = s;
this.releaseWriteLock();
}
}