小编ayl*_*ayl的帖子

读者 - 作者的第二种算法解决方案

我很难理解读者 - 写作者问题的第二种算法.我理解一般的概念,作家将优先于读者(读者可能会饿死).我甚至理解这个算法的读/写器锁在C++中的条件变量实现.但是,信号量和互斥量的实现对我来说毫无意义.这是维基百科的一个例子:

int readcount, writecount; (initial value = 0)
semaphore mutex 1, mutex 2, mutex 3, w, r ; (initial value = 1)

READER
  P(mutex 3);
    P(r);
      P(mutex 1);
        readcount := readcount + 1;
        if readcount = 1 then P(w);
      V(mutex 1);
    V(r);
  V(mutex 3);

  reading is done

  P(mutex 1);
    readcount := readcount - 1;
    if readcount = 0 then V(w);
  V(mutex 1);


WRITER
    P(mutex 2);
      writecount := writecount + 1;
      if writecount = 1 then P(r); …
Run Code Online (Sandbox Code Playgroud)

algorithm concurrency synchronization

5
推荐指数
2
解决办法
8434
查看次数

Python列表索引超出了分割的返回值范围

我正在编写一个简单的脚本,试图从.txt输入文件的第二列中提取第一个元素.

import sys

if (len(sys.argv) > 1):
    f = open(sys.argv[1], "r");
    print "file opened";

line = [];

for line in f:
    line = line.strip("\n ' '")
    line = line.split(",") 
    print line[1]

f.close();
Run Code Online (Sandbox Code Playgroud)

我的输入文件如下所示:

Client 192.168.1.13 said ``ACC: d0bb38f18da536aff7b455264eba2f1e35dd976f,389182.567,-0.042,-0.893,0.333''
Client 192.168.1.13 said ``ACC: d0bb38f18da536aff7b455264eba2f1e35dd976f,389182.590,-0.036,-0.905,0.273''
Client 192.168.1.13 said ``ACC: d0bb38f18da536aff7b455264eba2f1e35dd976f,389182.611,-0.046,-0.948,0.204''
Client 192.168.1.13 said ``ACC: d0bb38f18da536aff7b455264eba2f1e35dd976f,389182.631,-0.074,-0.978,0.170''
Client 192.168.1.13 said ``ACC: d0bb38f18da536aff7b455264eba2f1e35dd976f,389182.654,-0.100,-1.006,0.171''
Run Code Online (Sandbox Code Playgroud)

我希望我的分隔符是逗号.当我打印出行的长度时,我得到5个元素(如预期的那样).但是,每当我尝试索引列表以提取数据时(即,当我调用时print line[1]),我不断收到以下错误:

file opened
Traceback (most recent call last):
  File "stats.py", line 13, in <module>
    print line[1]
IndexError: list index …
Run Code Online (Sandbox Code Playgroud)

python python-2.7

5
推荐指数
1
解决办法
3万
查看次数

iPhone 内存压力导致 iOS 钥匙串数据丢失?

我正在通过 iPhone 5s 上的调试器运行 iOS 应用程序。我正在使用钥匙串来存储密码(我正在使用 Apple 的 KeychainItemWrapper 示例来存储和检索我的钥匙串项目)。大约 99.99% 的时间,钥匙串检索工作完美。但是,有两种情况我的应用程序无法获取密码。例如,有一次,我的手机遇到内存压力,我不得不重新启动手机并重新启动应用程序。应用程序重新启动后,我的应用程序无法再从钥匙串中检索密码。请问这个密码丢失是不是内存压力导致的?iOS 清除钥匙串数据的其他情况有哪些?有什么办法可以介绍这个吗??

iphone keychain ios keychainitemwrapper ios7

5
推荐指数
1
解决办法
1714
查看次数

在 iOS 目标的 Cargo Build 中启用位码输出?

我正在构建一个使用一些 Rust 库的 iOS 框架。现在,这些库被编译为静态库。为了让我启用位码(Apple 应用程序精简所需),需要在启用位码的情况下构建 Rust 库。我相信这需要 llvm 标志:-fembed-bitcode。在 Cargo 中有什么办法可以做到这一点吗?

ios rust rust-cargo

5
推荐指数
1
解决办法
1263
查看次数

main()未在非并发NSOperation中调用

在创建NSOperation并将其放入NSOperationQueue时,我从未看到调用main().只有start()被调用.我真的没有做任何奇特的事.作为一个简单的测试,我写了这个:

NSOperationQueue *testOperationQueue = [[NSOperationQueue alloc] init];
MyTestOperation *testOperation = [[MyTestOperation alloc] init];
[testOperationQueue addOperation:testOperation];
Run Code Online (Sandbox Code Playgroud)

在MyTestOperation.m中:

- (void)main
{
  NSLog(@"testing if main is getting called");
}

- (void)start
{
  NSLog(@"testing if start is getting called");
}
Run Code Online (Sandbox Code Playgroud)

MyTestOperation.h看起来像这样:

#import <Foundation/Foundation.h>

@interface MyTestOperation : NSOperation

@end
Run Code Online (Sandbox Code Playgroud)

我错过了一些明显的东西吗

[编辑注意:我实际上是指非并发,而不是并发(如前一个标题所述).

objective-c nsoperation nsoperationqueue

2
推荐指数
1
解决办法
1606
查看次数