我试图理解//Convert Base64 Representation of jpeg to
let imageData = imageString.split(',')[1];
let dataType = imageString.split('.')[0].split(';')[0].split(':')[1];
let binaryImageData = atob(imageData);
let data = new FormData();
let blob = new Blob([binaryImageData], { type: dataType })
data.append('file', blob);
let deferred = $.ajax({
url: this._imageAPIBaseUrl,
data: data,
cache: false,
contentType: false,
processData: false,
type: 'POST'
});
let observable = new AsyncSubject();
//When the Deferred is complete, push an item through the Observable
deferred.done(function () {
//Get the arguments as an array
let args = Array.prototype.slice.call(arguments);
//Call the observable next with the same parameters
observable.next.apply(observable, args);
//Complete the Observable to indicate that there are no more items.
observable.complete();
});
//If the Deferred errors, push an error through the Observable
deferred.fail(function () {
//Get the arguments as an array
let args = Array.prototype.slice.call(arguments);
//Call the observable error with the args array
observable.error.apply(observable, args);
observable.complete();
});
return observable;
方法在C中是如何工作的。这是我教科书中的一个示例问题:
fork()
以下哪项输出可能?
1)D0A0B0C
2)CDAB000
3)DA00CB0
4)D0AB0CD
5)AD00BC0
我在纸上勾勒出来,我认为正确的答案是:1,3,5。虽然我在int
main(void)
{
pid_t process_id;
int status;
if (fork() == 0) {
if (fork() == 0) {
printf("A");
} else {
process_id = wait(&status);
printf("B");
}
} else {
if (fork() == 0) {
printf("C");
exit(0);
}
printf("D");
}
printf("0");
return (0);
}
工作时遇到了一些困难。我的回答是对的吗?
答案 0 :(得分:4)
我刚刚解决了,我认为1,3和5是正确的。
有4个进程,但由于等待,2有一个依赖关系。 这意味着可能的输出是(_意味着可以抢占):
_A_0_B_0_
_C_
_D_0_
2和4不起作用,因为A和B之间没有0。 在fork()!= 0的过程中调用wait,这意味着它是父类。 fork()的语义是父项被赋予子项的进程id作为返回值,子项的返回值为0。 如果按照上面的3个输出进行操作,应该很容易看到1,3和5可以工作。