草庐IT

pthread_cancel

全部标签

c++ - 如何告诉 parent 该线程是使用 pthreads 在 C++ 中完成的?

我有一个TCP服务器应用程序,它使用POSIX线程和C++在新线程中为每个客户端提供服务。服务器在其套接字上调用“监听”,当客户端连接时,它会创建一个新的类Client对象。新对象在自己的线程中运行并处理客户端的请求。当客户端断开连接时,我想通过某种方式告诉我的main()线程该线程已完成,并且main()可以删除该对象并记录类似“客户端断开连接”的内容。我的问题是,我如何告诉主线程线程已完成? 最佳答案 我能看到的最直接的方法是加入线程。参见here.这个想法是,在连接调用中,命令线程将等待工作线程退出,然后恢复。或者,您可以使用

swift - 如何在 ResearchKit 调查中删除 'cancel button'

我做了一个包含11个步骤的ResearchKit调查,但我想删除每个问题底部的默认取消按钮。我遇到过这个命令:stepViewController.cancelButtonItem=nil;但我似乎找不到合适的地方。谢谢。 最佳答案 正确的位置应该在委托(delegate)回调中。文档指出“取消按钮项目在View加载期间和step属性的值更改时更新,但在taskViewController:stepViewControllerWillAppear:委托(delegate)中设置是安全的回调。”举个例子:functaskViewCon

swift - pthread_create swift 示例

由于我需要将应用程序从C移植到Swift,我想知道是否有关于在Swift上使用pthread_create和pthread_join的示例。我知道通常我们必须使用NSThreads或GCD,但在这种情况下,我需要使应用程序代码尽可能接近C应用程序。谁能在这里举个例子?对了,要调用的函数是Swift函数,不是C函数 最佳答案 也遇到了这个问题。这是下面的简短示例。希望它能进一步帮助别人:swift4classThreadContext{varsomeValue:String="Somevalue"}funcdoSomething(po

ios - UIView.animateWithDuration :animations:completion: gets canceled in XCTest

我正在尝试对UIView上的扩展进行单元测试,它调用animateWithDuration:animations:completion:。不幸的是,测试用例中的所有动画都立即取消,因此完成block的isFinished参数始终为false。有没有人知道如何让动画在测试用例中工作?这是我的Playground代码:importUIKitimportXCTestextensionUIView{funcfadeOut(duration:TimeInterval,completion:((Bool)->Void)?){UIView.animate(withDuration:duration,

java - 改造 2/OkHttp : Cancel all running requests

我正在使用带有OkHttp2.7.0的Retrofit2-beta2。要从Retrofit获取OkHttpClient对象,我使用Retrofit.client()方法并取消所有正在运行的请求,我称之为cancel(Objecttag)方法,但请求仍在运行,我得到了响应。甚至客户端的Dispatcher的getQueuedCallCount()和getRunningCallCount()调用cancel()后返回0。我还需要做些什么才能让它发挥作用吗?或者它可能是OkHttp中的错误?作为解决方法,我在客户端的ExecutorService上调用shutdownNow(),但我更喜欢更

java - 线程中断 : will it cancel oncoming wait() call?

我有一个线程,它有一个传入的作业队列(一个包含作业描述的LinkedList)。当没有工作可处理时,线程会在队列中用wait()阻塞。外部作业调度程序对象在将新作业放入队列时使用notify()将其唤醒。在我的程序关闭时,我在线程上调用了interrupt()。当线程等待wait()中的作业时,这会引发InterruptedException。我的问题是:如果我在Thread没有阻塞但在做某种工作时中断它会发生什么,处理的项目是队列中的最后一个(因此队列现在是空的)并且执行通过isInterrupted()在设置中断标志之前检查以便再次调用wait()?它会抛出InterruptedE

java - 等待 FutureTask 上的 cancel()

我想取消从ThreadPoolExecutor获得的FutureTask,但我想确保线程池上的Callable已停止其工作。如果我调用FutureTask#cancel(false)然后调用get()(阻塞直到完成),我会得到一个CancelledException。此异常是立即抛出还是在任务停止执行后抛出? 最佳答案 此答案通过检查任务是否已在可调用对象中取消来修复Aleksey和FooJBar代码中的竞争条件。(在FutureTask.run检查状态和运行可调用函数之间有一个窗口,在此期间cancel和getWithJoin都可

java - Future.cancel(false) 的用例?

在什么情况下需要将false参数的mayInterruptIfRunning传递给Future.cancel()?如果我理解正确,如果你传递false并且任务被取消但线程没有被中断,结果(或ExecutionException)将永远无法访问,因为任务仍然被标记为已取消(即isCancelled()返回true和get()抛出CancellationException。)其他可能的情况是:Runnable或Callable实现不检查中断,即使你打断它也会运行完成(这里的中断没有区别)在您调用cancel()之前任务已经完成(再次中断没有区别)任务在退出之前需要执行一些清理(一个编写良好

android - adb 安装失败 : INSTALL_CANCELED_BY_USER

我尝试通过adb安装应用程序并收到错误:$./adb-dinstall/Users/dimon/Projects/one-place/myprogram/platforms/android/build/outputs/apk/android-debug.apk-r-g3704KB/s(4595985bytesin1.211s)pkg:/data/local/tmp/android-debug.apkFailure[INSTALL_CANCELED_BY_USER]在设备中,我此刻什么都不做。设备为小米MI5,MIUI7.2.13,Android6.0。开发者模式已启用。如何解决这个问题

android - adb 安装失败 : INSTALL_CANCELED_BY_USER

我尝试通过adb安装应用程序并收到错误:$./adb-dinstall/Users/dimon/Projects/one-place/myprogram/platforms/android/build/outputs/apk/android-debug.apk-r-g3704KB/s(4595985bytesin1.211s)pkg:/data/local/tmp/android-debug.apkFailure[INSTALL_CANCELED_BY_USER]在设备中,我此刻什么都不做。设备为小米MI5,MIUI7.2.13,Android6.0。开发者模式已启用。如何解决这个问题