相关疑难解决方法(0)

968
推荐指数
27
解决办法
19万
查看次数

未来和承诺之间有什么区别?

Future和之间有什么区别Promise
它们都像未来结果的占位符,但主要区别在哪里?

java concurrency future promise

241
推荐指数
7
解决办法
13万
查看次数

什么是协程?

什么是协程?它们如何与并发相关?

terminology coroutine

181
推荐指数
8
解决办法
6万
查看次数

异步与多线程 - 有区别吗?

异步调用是否始终创建新线程?两者有什么区别?

异步调用是始终创建还是使用新线程?

维基百科说:

在计算机编程中,异步事件是独立于主程序流发生的事件.异步操作是在非阻塞方案中执行的操作,允许主程序流继续处理.

我知道异步调用可以在单线程上完成吗?这怎么可能?

language-agnostic multithreading asynchronous

129
推荐指数
9
解决办法
5万
查看次数

了解NSRunLoop

谁能解释一下是NSRunLoop什么?所以我知道这NSRunLoop是一件与之相关的事情NSThread吗?所以假设我创建一个类似的线程

NSThread* th=[[NSThread alloc] initWithTarget:self selector:@selector(someMethod) object:nil];
[th start];

-(void) someMethod
{
    NSLog(@"operation");
}
Run Code Online (Sandbox Code Playgroud)

在这个线程完成他的工作之后?为什么使用RunLoops或在哪里使用?从Apple docs我已经阅读了一些东西,但对我来说并不清楚,所以请尽可能简单地解释

cocoa-touch objective-c nsrunloop ios

100
推荐指数
3
解决办法
6万
查看次数

DispatchQueue.main.async和DispatchQueue.main.sync之间的区别

我一直在使用DispatchQueue.main.async很长一段时间来执行一些与UI相关的操作.但Swift提供了DispatchQueue.main.async和DispatchQueue.main.sync,两者都在主队列中执行.那么有谁可以告诉我他们之间的区别?我什么时候应该使用它们?先感谢您.

DispatchQueue.main.async {
    self.imageView.image = imageView
    self.lbltitle.text = ""

}

DispatchQueue.main.sync {
    self.imageView.image = imageView
    self.lbltitle.text = ""
}
Run Code Online (Sandbox Code Playgroud)

concurrency multithreading ios swift swift3

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

使用ExecutorService有什么好处?

使用ExecutorService过度运行的线程Runnable进入Thread构造函数有什么好处?

java concurrency multithreading executorservice

46
推荐指数
4
解决办法
5万
查看次数

逃离Swift中的闭包

我是Swift的新手,当我遇到逃脱闭合时,我正在阅读手册.我根本没有得到手册的描述.有人可以用简单的语言向我解释一下Swift中有什么逃避封锁.

closures swift

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

在iOS中线程安全是什么意思?

我经常碰到“线程安全”这两个关键术语,想知道这意味着什么。例如,在Firebase或Realm中,某些对象被视为“线程安全”。线程安全的东西到底意味着什么?

thread-safety ios swift

7
推荐指数
3
解决办法
1766
查看次数

Swift3 GCD中的main.async vs main.sync()vs global().async

示例A: - 这会导致App Crash.

DispatchQueue.main.async {           
        let url = URL(string: imageUrl)
        do {
             let data = try Data(contentsOf: url!)
                DispatchQueue.main.sync {
                    self.imageIcon.image = UIImage(data: data)
                }
            }
Run Code Online (Sandbox Code Playgroud)

例B: - 但事实并非如此

DispatchQueue.global().async {  
        let url = URL(string: imageUrl)
        do {
            let data = try Data(contentsOf: url!)
                DispatchQueue.main.sync {
                    self.imageIcon.image = UIImage(data: data)
                }
            }
Run Code Online (Sandbox Code Playgroud)

据我所知,

  • x.sync意味着在主线程/ UI线程中执行操作而x.async意味着在后台线程中执行操作.
  • 全局意味着执行具有并发队列的东西,即并行任务

Quest1: - 那么为什么我的应用程序在后台线程(即main.async)执行任务时崩溃,而不是调用主线程来更新UI.

Quest2: - main.async和global().async有什么区别.

multithreading asynchronous ios swift swift3

7
推荐指数
3
解决办法
5082
查看次数

调度同步的目的是什么?

我很清楚 dispatch_async 队列正在执行什么,但我不清楚 dispatch_sync 的目的是什么。例如:这有什么区别:

NSLog(@"A");
NSLog(@"B");
Run Code Online (Sandbox Code Playgroud)

和这个:

dispatch_sync(dispatch_get_main_queue(), ^ {
NSLog(@"A");
    });
NSLog(@"B");
Run Code Online (Sandbox Code Playgroud)

据我所知,两种方式的输出都是 A 然后是 B。因为同步是按照写入的顺序执行的。谢谢。

asynchronous objective-c synchronous ios dispatch-async

4
推荐指数
1
解决办法
3838
查看次数