相关疑难解决方法(0)

并发编程和并行编程有什么区别?

并发编程和并行编程有什么区别?我问谷歌,但没有找到任何帮助我理解这种差异的东西.你能给我一个例子吗?

现在我发现了这个解释:http://www.linux-mag.com/id/7411 - 但"并发性是程序的属性"vs"并行执行是机器的属性"对我来说还不够 - 我还不能说什么是什么.

language-agnostic parallel-processing concurrency

332
推荐指数
12
解决办法
10万
查看次数

Node.js中的非阻塞或异步I/O是什么?

在服务器端Javascript引擎的上下文中,什么是非阻塞I/O或异步I/O?我认为这被提到是优于Java服务器端实现的优势.

asynchronous nonblocking serverside-javascript node.js

127
推荐指数
2
解决办法
8万
查看次数

有什么区别:异步,非阻塞,事件基础架构?

  1. 有什么区别:

    • 异步,
    • 非阻止,和
    • 基于事件的架构?
  2. 可以是异步非阻塞(以及基于事件的)吗?

  3. 在编程中最重要的是拥有一些东西:异步,非阻塞和/或事件库(或全部3)?

如果你能提供一些例子,那就太棒了.

这个问题正在被问到,因为我正在阅读关于类似主题的这篇伟大的StackOverflow文章,但它没有回答我上面的问题.

asynchronous programming-languages event-based-programming nonblocking blocking

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

阻塞与同步,非阻塞和异步之间的区别是什么?

我正在阅读'使用Java操作系统概念'.我对阻塞和同步的概念很困惑,它们之间有什么区别?

io multithreading operating-system synchronous blocking

23
推荐指数
3
解决办法
2万
查看次数

@ tornado.web.asynchronous decorator是什么意思?

  1. 如果代码没有使用这个装饰器,它是否是非阻塞的?
  2. 为什么这个名字是异步的,这意味着添加装饰器让代码异步?
  3. 为什么@ tornado.gen总是和@ tornado.web.asynchronous一起使用?

python tornado

18
推荐指数
2
解决办法
7518
查看次数

使用Scala接收和发送电子邮件

我打算使用Scala和Akka构建一个服务,它将严重依赖于电子邮件.事实上,与我的服务进行的大多数沟通都将通过发送信件并获得回复来完成.我想这意味着我需要一个可靠的电子邮件服务器以及与Scala通信的方式.

问题是,这样做的最佳做法是什么?我应该选择哪种电子邮件服务器以及用于完成此任务的Scala解决方案?

email scala mail-server

15
推荐指数
2
解决办法
2万
查看次数

openmpi中的Immidiate与同步通信

关于同步 - 异步的概念,我在这里从阻塞和非阻塞操作(在OpenMPI中)的上下文中略微混淆了:

  • 链路1 :MPI_Isend不一定异步(这样它可以同步的?)

  • 链接2 :MPI_Isend()MPI_Irecv()是MPI的ASYNCHRONOUS通信原语.

我已经完成了之前的同步 - 异步 - 阻塞 - stackoverflow上的非阻塞问题(异步与非阻塞),但对我没有帮助.我所知道的 :

那么如何以及为什么MPI_ISEND阻止(链接1)以及阻止(链接2)?这是异步和同步的意思MPI_Isend吗?

类似引起混淆关于MPI_Ssend&MPI_Issend中,由于小号在MPI_ 小号 SEND装置同步(或阻塞),并且: -

  • MPI_Ssend:同步发送块直到远程进程收到数据并且发送方收到ack,
  • MPI_Issend:表示立即同步发送

也是 mmediate是非阻塞的,那么,怎样才能MPI_ IS SEND是小号 ynchronous&回到 mmediately?

我想在阻塞和非阻塞OpenMPI通信的上下文中异步和同步需要更清晰.在这方面的实际例子或类比将是非常有用的.

asynchronous mpi blocking openmpi

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

Java 中通过 POSIX AIO 或 Windows Overlapped IO 的异步文件 I/O

System.IO.File.NET.NET Core 中有一系列Read...Async()方法,所有这些方法都返回Task<byte[]>Task<string>Task<T>.NETJava 的 等价物Future<T>)。

这看起来在很大程度上等同于AsynchronousFileChannelAPI(它们要么消耗CompletionHandler或返回 a Future),但有一个主要区别。

  • AsynchronousFileChannel 使用托管后台线程执行异步 I/O(该线程可能由默认线程池提供(sun.nio.ch.ThreadPool ) 或ExecutorService在通道创建期间显式指定的)。
  • FileStream另一方面,.NET 中的实现将FileOptions.Asynchronous标志传递给底层操作系统(另请参阅同步和异步 I/O),不产生任何托管后台线程并使用所谓的重叠 I/O

问题:

  • 是否有任何(现有或计划)文件I / O API的Java它将使用重叠I / O的WindowsPOSIX AIO在Unix系统?更新:特定于Windows 的Java运行时功能sun.nio.ch.WindowsAsynchronousFileChannelImpl,这正是重叠 I/O之上的抽象层。
  • 是否有计划提供 …

java io nio aio overlapped-io

6
推荐指数
1
解决办法
807
查看次数

为什么AIO比选择和多线程IO处理更好?

我已经读过select和多线程编程是低性能IO模型,例如这篇关于高性能IO的IBM developerworks文章.

我不明白同步/异步如何:阻塞/非阻塞正在改善性能.为什么AIO是最佳选择?

c++ io

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

龙卷风和异步请求处理

我的问题分为两部分:

  1. "异步服务器"究竟是什么意思,通常人们称之为龙卷风?有人可以提供一个具体的例子来说明概念/定义吗?

  2. 在Tornado的情况下,"非阻塞"究竟是什么意思?这与上面的异步性有关吗?另外,我在某处读它总是使用单个线程来处理所有请求,这是否意味着请求是逐个或并行处理的?如果是后一种情况,龙卷风怎么做呢?

webserver asynchronous tornado

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

用于在Java中编写异步文件的PipedOutputStream/PipedInputStream(或Reader/Writer)与BlockingQueue之间的异同

我正在尝试修改从数据库读取的串行程序,并将结果写入文件,这是以阻塞方式完成的,我认为我们可以通过内存缓冲区获得性能提升,并将文件写入"背景"是异步的

我可以想到"求职面试"解决方案,使用线程,共享资源,同步块等...但我确信有更好的方法(有一个很好的小"延迟写入"库,那里会这样做为了我?)

任何java.util.concurrent套餐是否提供任何帮助?java.nio?或者JMS/ActiveMQ?

那么PipedOutputStream/ PipedInputStream作为我缓冲的基础呢?

如何在Java中实现延迟/后台/缓冲/非阻塞/异步文件写入?

编辑:

基于这些建议,并避免关闭这个问题,(因为我认为它仍然基于答案评论和投票相关)这里是尝试使其更集中.(我保留上面的原始问题所以答案仍将保留在上下文中,因为有一些非常好的问题)

  • PipedOutputStream/ PipedInputStream(或PipedReader/ PipedWriter)与之间的实际区别是什么?BlockingQueue
  • 并且最好使用后者进行异步文件写入?(或者这是苹果与橘子的比较,如果是这样,我想知道为什么?)

java io multithreading

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

NodeJ中的单线程和非阻塞I/O操作有什么区别?

我一直在阅读并尽可能多地浏览NodeJs代码,但我对此有点困惑:

Node是单线程的意思是什么,非阻塞I/O是什么意思?我可以通过生成子进程来实现第一个,通过使用异步库来实现第二个进程.但我想清楚它的含义以及非阻塞I/O如何仍然会降低您的应用程序速度.

node.js

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

setState() 在封闭函数返回之前不会执行

所以我在颤振中尝试这段代码:

void main() => runApp(MyApp());

class MyApp extends StatefulWidget {
  @override
  _MyAppState createState() => _MyAppState();
}

class _MyAppState extends State<MyApp> {
  int _i = 1;
  @override
  Widget build(BuildContext context) {
    return MaterialApp(
      home: Scaffold(
        body: Center(
          child: MaterialButton(
            child: Text('You Pressed Me $_i'),
            onPressed: () {
              setState(() {
                _i++;
                print('inside i = $_i');
              });
              sleep(Duration(seconds: 10));
              _i++;
              print('outside i = $_i');
            }
          ),
        ),
      ),
    );
  }
}
Run Code Online (Sandbox Code Playgroud)

预期行为(运行并按下按钮一次后):按钮显示文本"You Pressed Me 2"

然后变量_i在不影响视觉效果的情况下增加到 3。

实际行为 …

dart flutter

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