小编Mik*_*r67的帖子

是否需要互斥锁用于将不同的偏移量分配到分配的堆内存中

我正在生成一个生成二进制数据表的工具的框架中.我计划让这个多线程充分利用我拥有的24个核心.(我估计在一个线程中,生成数据的时间大约为50天).我过去使用带有套接字通信的服务器/客户端设计完成了这项工作,因为我需要在多台机器上分发它.

这一次,我正在研究一种机器/多线程方法,并试图找出如何以正确的方式做到这一点.

主线程将处理每个子线程的任务分配并确定到分配的内存中的偏移量.

每个线程将写入分配的内存中的唯一地址范围.因为这些块在记录之间永远不会重叠,所以没有两个线程会尝试写入相同的偏移量.

 {Meta Data} {Rec1} {Rec2} {Rec3} {Rec4} {...} {...} {...}

void computeRecord(void *taskInput)
{
  struct TaskData *taskData = (TaskData *)(taskInput);

  RecordData data; 
  // A huge long computation block to populate data
  //   (4-5 second run time)

  long record_id = taskData->record_id;
  char *buffer   = taskData->start_buffer;

  // mutex lock needed here ??

  int n_bytes = sizeof(RecordData)
  memcpy( (char *)(buffer+record_id*n_bytes), (char *)(&recordData) n_bytes);

  // mutex unlock here ?
}
Run Code Online (Sandbox Code Playgroud)

设置时间长.简短的问题.在这种情况下,互斥是必要的吗?

c c++ multithreading mutex

7
推荐指数
1
解决办法
237
查看次数

退出 UIViewController 时禁用“保存密码”操作表?

我的应用程序有一个“创建帐户”视图控制器(如下所示),提示用户输入用户名和密码。每当我转到另一个视图控制器时,都会弹出一个操作表,提示将密码保存在钥匙串中。

如果用户成功创建新帐户,这是一个漂亮的小免费赠品。但是,如果用户点击导航栏中的取消(后退)按钮,如果他们选择使用 Facebook 登录而不是创建帐户的选项,或任何其他离开此视图控制器的方式,我都会收到相同的弹出窗口(见图以下)。

我怎样才能让这个弹出窗口只在用户成功创建新帐户时显示?

编辑:根据请求,这里是与导致“保存密码”操作表出现的 segue 相关的代码。

来自CreateAccountViewController.swift

class CreateAccountViewController : UIViewController
{
  // ... bunch of irrelevant code deleted ...

  // bound to "Connect with Facebook" button (see image below)
  @IBAction func switchToFacebook(_ sender : UIButton)
  {
    performSegue(.SwitchToFacebookLogin, sender: sender)
  }
  // ... bunch of irrelevant code deleted ...
}

extension CreateAccountViewController : GameServerAlertObserver
{
  // callback based on response from GameCenter after 
  //  submitting a "create new user" request
  func handleConnectionResponse(_ response:GameServerResponse )
  { …
Run Code Online (Sandbox Code Playgroud)

keychain uiviewcontroller ios

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

cmath 和 numpy 都给出了 asin(10) 的“不正确”值

最近需要快速求10的反正弦,决定用python来帮我计算:

cmath.asin(10)
Run Code Online (Sandbox Code Playgroud)

根据经验,我预计结果会出现在第四象限(正实数(pi/2)和负虚数)。惊喜......它返回了第一象限结果。我也试过 numpy.arcsin ......同样的结果。虽然返回值的正弦值确实是 10,但我认为这不是反正弦函数的标准主值

>>> import math
>>> import numpy as np
>>> z=cmath.asin(10)
>>> z
(1.5707963267948966+2.993222846126381j)
>>> cmath.sin(z)
(9.999999999999998+6.092540900222251e-16j)
>>> z2=np.arcsin(10+0j)
>>> np.sin(z2)
(10+6.092540900222253e-16j)
Run Code Online (Sandbox Code Playgroud)

我使用 numpy 发现了同样的结果(如上所示)。

是否有一个 python 模块,我可以期望从中获得复值函数的标准主值(即遵循主分支切割)? 或者,在这一点上,标准本金值的概念是否过于流动,无法预期一致性?


python math numpy

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

NSAlert beginSheetModalForWindow:completionHandler:

NSAlert在Xcode 5.0.2中设置一个要显示为模态表的对象时,我发现了一个有趣的惊喜.

我正计划使用 beginSheetModalForWindow:modalDelegate:didEndSelector:contextInfo:

当我开始输入它时,Xcode beginSheetModalForWindow:completionHandler:为我自动填充(即使我在任何NSAlert文档中都找不到这个).

我更喜欢使用完成处理程序而不是委托/选择器作为回调机制,所以我继续尝试它.我惊喜地发现它完美无缺.

在我承诺之前有三个简单的问题.

  1. 我在文档中遗漏了什么吗?

  2. 如果没有文档,使用此功能是否"安全"? (也就是它会像神秘的一样神奇地消失?)

  3. 我宁愿不根据我通过日志记录看到的内容来硬编码响应值.有人知道"适当的" NS...Button常数吗?

cocoa

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

标签 统计

c ×1

c++ ×1

cocoa ×1

ios ×1

keychain ×1

math ×1

multithreading ×1

mutex ×1

numpy ×1

python ×1

uiviewcontroller ×1