小编pmf*_*pmf的帖子

从LinkedBlockingQueue迁移到LMAX'Disruptor

是否有一些示例代码用于从标准LinkedBlockingQueue迁移到LMAX的Disruptor架构?我有一个事件处理应用程序(单个生产者,多个消费者),可能会从更改中受益.

当我的目标是最大化吞吐量而不是最小化延迟时,它是否有意义?

java queue concurrency disruptor-pattern

8
推荐指数
1
解决办法
1545
查看次数

设备树和手动注册

我在主板上使用嵌入式Linux主要通过设备树机制(.dts/ .dtcfiles)配置,即设备树文件中的条目指示要注册的设备,以及要加载的驱动程序.

有没有办法手动加载动态模块的方式类似于设备树处理程序加载此驱动程序时会发生的情况?

为了澄清:在我的.dts文件中没有设备XXX的条目,我可以在用户空间已经启动之后"手动"注册该设备(例如通过动态加载包装器内核模块)(就像dts-unaware一样)驱动程序)?

使用简单modprobe/ insmod不是我认为有效的,因为这只会加载驱动程序,但不会注册设备及其参数(通常来自.dts文件).

linux embedded device-tree

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

OSGi和遗留库

我一直在研究OSGi一段时间,我想知道处理"遗留"库(以普通JAR而不是OSGi包发布)的最佳方式.

您认为处理这些问题的最佳方法是什么?修改他们的清单文件并添加最小的特定于bundle的信息,然后重新打包它们就是我现在所做的,但对我来说似乎有点不对劲.我是否应该对这些JAR使用手动依赖关系管理(对于那些很有可能仅在我的应用程序的某个部分使用的库,我会这样做)?

就它们可用而言,我正在使用Eclipse的捆绑包(因为我使用Equinox作为OSGi平台,这对于那些作为捆绑包提供的库来说效果很好).

除了我应该知道的Eclipse-bundle之外,还有任何bundle-repositories吗?

java osgi bundle jar equinox

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

使pthread_rwlock_wrlock递归

我对pthread函数pthread_rwlock_wrlock的行为有疑问。上面链接的规范指出,当一个线程锁定了写锁并且同一线程再次将其锁定时,将导致未定义的行为(我实际上可以观察到这一点,因为在x86 Linux上,调用此函数是noop,而在PowerPC Linux上,停止线程)。

我需要的行为是具有以下特征的读写锁:

  • 在以下情况下,线程读取锁定成功:
    • 锁不由任何线程持有
    • 该锁仅由零个或多个线程(包括调用线程)进行读锁定,并且可能被调用线程进行读或写锁定
  • 在以下情况下,写锁定成功:
    • 该锁不由任何其他线程持有
    • 仅当前线程持有该锁(用于读取或写入)

使用a时pthread_mutex_t,可以通过初始化标志来控制锁的递归性,但是对于,这是不可能的pthread_rwlock_t

我有什么选择?实际上,我从来没有必须在C中实现这种并发原语,而且我想这里缺少一些明显的解决方案。

locking pthreads mutual-exclusion rwlock

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

套接字读取和时间戳

当从Linux中的(非流)套接字读取时,我可以通过a获得最后收到的消息的(硬件生成的)时间戳ioctl(sock, SIOCGSTAMP, &tv).但是,这会带来两个问题:

  • 这是另一个系统调用(我每秒收到大约24000条消息,因此每个系统调用都是通知的)
  • 如果使用这种方法,我一次只能有read()一条消息,然后是ioctl()获取时间戳.(如果我在read()-call中读取多条消息,则以下内容ioctl仅生成最后一条消息的时间戳.)

我的问题是如何在尽可能少的系统调用中实现接收消息及其时间戳.如果存在一个具有语义的系统调用,例如"读取待处理的消息及其时间戳",那将是完美的.

c sockets timestamp system-calls

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

Qt:数据绑定

来自Java和.NET,我已经习惯于将域对象声明性地绑定到UI控件。似乎并没有真正建立双向连接(非Qt)域对象和Qt对象的偶发方式。在域对象中实现信号时隙机制显然会污染核心域模型并引入不必要的依赖关系。

我知道数据库绑定可用,但这不是我的用例。

大型Qt项目在这方面的实践是什么?

data-binding qt observer-pattern

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

Leiningen:如何在uberjaring时排除依赖关系?

使用leiningen构建Clojure应用程序时,如何在使用时将某些依赖项排除在JAR文件中lein uberjar

jar clojure leiningen

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

QML:将JS对象传递给C++成员函数

我正在尝试将JS对象(map)传递给带有签名的C++成员函数

Q_INVOKABLE virtual bool generate(QObject* context);
Run Code Online (Sandbox Code Playgroud)

通过使用

a.generate({foo: "bar"});
Run Code Online (Sandbox Code Playgroud)

调用该方法(通过断点检测),但传递的context参数是NULL.由于文档提到JS对象将被传递QVariantMap,我尝试使用签名

Q_INVOKABLE virtual bool generate(QVariantMap* context);
Run Code Online (Sandbox Code Playgroud)

但这在MOC期间失败了.运用

Q_INVOKABLE virtual bool generate(QVariantMap& context);
Run Code Online (Sandbox Code Playgroud)

导致在运行时无法通过QML找到该方法(错误消息是"未知方法参数类型:QVariantMap&").

该文档仅有一个将QVariantMapC++从Q ++ 传递到QML 的示例,而不是另一个方向.

使用a public slot而不是a Q_INVOKABLE显示完全相同的行为和错误.

javascript c++ qt qml

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

关于外部库的Guice vs. Spring

我有一个问题涉及一个人想要将东西注入外部库的实例,即无法用注入注释注释的类.

由于Guice完全依赖于注释,这是否意味着我无法处理Guice的这个用例?使用Spring,我可以用XML声明注入,并且不需要修改类(通过添加注释),所以它只是起作用.

这些观察结果是否正确?如果是这样,您在使用Guice时如何解决问题?

java spring dependency-injection guice

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

XSModel:获取模型组信息

使用Xerces SAX库XSModel作为XSD语法的表示,如果我有一个引用模型组的复杂类型,我该如何检索模型组?似乎XSModel由Xerces提供的实例所表示的复杂类型定义仅提供对组的扁平(扩展)内容(对应于组的元素)的访问,而不是实际组或对组定义的引用(甚至是小组的名字; XSModelGroupImpl's- getName()method也包括return null......).

xml xsd xerces

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