首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Netbeans平台中的多线程编程

Netbeans平台中的多线程编程
EN

Stack Overflow用户
提问于 2011-02-22 15:21:06
回答 3查看 3.9K关注 0票数 3

我已经浏览了关于NBP的书籍/文档,但没有直接讨论NBP中的多线程编程。关于NBP中的多线程,有什么特别需要注意的吗?因此,如果我想创建一个多线程NBP应用程序,我只需要遵循常规的Java多线程编程实践,对吧?

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2011-02-28 06:17:19

主要要看的是RequestProcessor和RequestProcessor.Task。RequestProcessor是一个线程池;RequestProcessor.Task是一个作业。

RequestProcessor所做的大部分工作与ExecutorService现在在RequestProcessor中所做的工作类似。使用JDK并不容易的主要事情是创建一个可以重新调度和重复运行的任务。例如,如果您想在用户停止键入时在超时后执行某些工作,这将非常有用:

代码语言:javascript
复制
private static final RequestProcessor rp = new RequestProcessor(MyClass.class);
private RequestProcessor.Task task = rp.create(new Runnable() {
  public void run() {
    //...do some expensive parsing or similar
  }
});

public void keyPressed (KeyEvent ke) {
  task.schedule(200); // (re)schedule the task 200ms in the future;  if schedule() is called again, it will be postponed
}

如果您使用的是Nodes API,那么它是线程安全的,并且您可以根据需要更新节点。

如果你正在做一些涉及到Swing组件的事情,记住总是使用EventQueue.invokeLater(Runnable)来运行代码--并且永远不要使用EventQueue.invokeAndWait() --这会导致死锁。

如果您的代码有时会在事件线程上调用,有时又不会调用,NetBeans有一个简单的方法来确保您的代码在事件线程上运行: Mutex.EVENT.readAccess (new Mutex.Action() { ... })

票数 2
EN

Stack Overflow用户

发布于 2011-02-22 15:23:43

我只需要遵循常规的

多线程编程实践,对吧?

只有java编译器才能从您的NBP编译您的Javacode。

票数 1
EN

Stack Overflow用户

发布于 2011-02-23 03:05:50

在NetBeans RCP中有许多支持多线程编程的类。

org.openide.util包中有一些与线程和RCP相关的有趣类。

大多数这些类都可以帮助你创建线程之类的东西。在创建java多线程编程实践之后,您仍然需要使用它们。

您可能还想看看Progress UI api

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/5075217

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档