问题列表 - 第41343页

如何保证ThreadPoolExecutor中的FIFO执行顺序

我用这行代码创建一个ThreadPoolExecutor:

private ExecutorService executor = new ThreadPoolExecutor(5, 10, 120, TimeUnit.SECONDS, new ArrayBlockingQueue<Runnable>(20, true));
Run Code Online (Sandbox Code Playgroud)

然后,我运行25个任务(T01到T25),所以情况是:

  • 当前正在运行的5个任务(T01到T05)
  • 在队列中等待的20个任务(T06到T25)

当我再添加1个任务(T26)时,当队列已满时,我预计将删除旧任务(T06)以启动(因为未达到MaxPoolSize)并且新任务(T26)被放置在末尾队列.

但在现实生活中,如果Queue已满并且未达到MaxPoolSize,则启动最新任务.

所以我有 ...

  • 当前正在运行的6个任务(T01到T05和T26)
  • 在队列中等待的20个任务(T06到T25)

... 代替 ...

  • 当前正在运行的6个任务(T01到T06)
  • 在队列中等待的20个任务(T07到T26)

我可以配置ThreadPoolExecutor来获得预期的结果吗?我应该使用其他课吗?

有关信息,请参阅ThreadPoolExecutor源代码的一部分

public void execute(Runnable command) {
    if (command == null)
        throw new NullPointerException();
    if (poolSize >= corePoolSize || !addIfUnderCorePoolSize(command)) {
        if (runState == RUNNING && workQueue.offer(command)) {
            if (runState != RUNNING || poolSize == 0)
                ensureQueuedTaskHandled(command);
        }
        else if (!addIfUnderMaximumPoolSize(command))
            reject(command); // is shutdown or saturated
    }
}


private boolean …
Run Code Online (Sandbox Code Playgroud)

java multithreading fifo

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

剥离标点符号的正则表达式也错误地将Báenou这个词变成了Benou

这个正则表达式的目标是删除标点字符:

var myTxt = "Welcome, Visitor: The Royal Kingdom Of Báenou";
myTxt = myTxt.replace(/[^a-zA-Z0-9 ]+/g, '').replace('/ {2,}/',' ');
alert(myTxt);
Run Code Online (Sandbox Code Playgroud)

所以上面的文字应该变成这样:

Welcome Visitor The Royal Kingdom Of Báenou
Run Code Online (Sandbox Code Playgroud)

但相反,它错误地á放入in Báenou产生这个:

Welcome Visitor The Royal Kingdom Of Benou
Run Code Online (Sandbox Code Playgroud)

我可以对正则表达式做出的最简单的改变是什么让它按预期工作?

javascript regex string sanitization punctuation

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

用mockito嘲笑GWT EventBus

我在EventBus的一个真正的SimpleEventBus实现上有一些问题:我有一个活动,它也是特定事件的处理程序.此事件由服务触发.

代码:

    @Mock private AssetCellList view;
    @Mock private AcceptsOneWidget panel;
    @Mock private SelectionModel<Asset> selectionModel;
    @Mock private HasData<Asset> cellList;
    @Mock private AssetService service;
    @Mock private Asset asset;
    @Mock private List<Asset> list;
    @Mock private AssetListDTOClientImpl assetDTO;
    @Mock private AssetEvent event;


    @Before
    public void setUp() throws Exception {
        MockitoAnnotations.initMocks(this);
    }

    @Test 
    public void test(){


        /*Some stubbing*/
        when(view.getSelectionModel()).thenReturn(selectionModel);
        when(view.getList()).thenReturn(cellList);
        when(assetDTO.getAssetList()).thenReturn(list);
        when(assetDTO.getAssetList().get(anyInt())).thenReturn(asset);
        when(event.getAssetDTO()).thenReturn(assetDTO);


        /*Creatin the Real EventBus*/
        EventBus eventBus = new SimpleEventBus();

        /*Creating the activity */
        AssetListActivity activity = new AssetListActivity(eventBus, 
                view,
                service);

        /*Spying the …
Run Code Online (Sandbox Code Playgroud)

gwt unit-testing mockito gwt-mvp

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

如何从另一个构建文件执行nant构建文件?

我有一个很大的项目,我创建了一些构建文件,我在不同的场景中使用,包括ccnet.所以,我有BF1.build和BF2.build

我只是想在BF1中某处从BF2.build调用/执行脚本

nant nant-task

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

drupal_add_css,drupal_add_js不起作用

我使用drupal_add_css()drupal_add_js()对CSS和JavaScript文件添加到我的Drupal网站.我在一个名为control的模块中执行此操作,因此调用我正在使用的函数control_preprocess_page(&$vars).

但在我的主题中没有添加任何内容!

preprocessor drupal

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

使用DOM循环遍历"body"标签的所有元素

$html = file_get_contents("test.html");
$doc = new DOMDocument();
$doc->loadHTML($html);
$xpath = new DOMXPath($doc);
$body = $xpath->query('//body');
Run Code Online (Sandbox Code Playgroud)

我想循环遍历HTML文件的body标签的所有元素,并打印出与这些元素关联的"style"属性.我怎样才能做到这一点?

html php dom loops

5
推荐指数
2
解决办法
4461
查看次数

如何在emacs cperl-mode中更改标量变量的面?

在cperl模式中,我可以使用M-x customize-group RET cperl-faces RET和更改Cperl Hash Face和更改数组和哈希面Cperl Hash Face.但我看不到任何改变标量变量颜色的选项.

我试图改变font-lock-variable-name-face代码内部或从Cperl Ps Print Face Properties(我真的想改变颜色在打印中),但它不起作用.我已经尝试了从4.32到rockway-perl6-branch的几种cperl模式.

此外,我不想在变量中使用$ color,因此sigil在打印输出中会更好(这已经在这里被问到但是没有解决).

有人可以给我任何提示吗?

emacs perl font-lock emacs-faces

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

释放指向静态数组的指针

我在头文件中声明了以下数组.

static const float elementsArray[300] = { ... };
Run Code Online (Sandbox Code Playgroud)

我想要做:

float *elementsPointer = &elementsArray[0];
Run Code Online (Sandbox Code Playgroud)

我相信我能做到这一点,但是......我需要释放elementsPointerdelete

我还需要做其他事吗?

谢谢.

c++ pointers

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

OpenCL和GPU编程路线图

我想开始说我对OpenCL/GPU编程一无所知,但我是一名高级C#(通用.Net)程序员而不用担心C++,我想学习OpenCL/GPU编程......我的问题是...我从哪里开始?!?我应该下载什么?!?有没有办法在Visual Studio上编程OpenCL/GPU(在C#上)!?!喜欢...你好世界的东西......全部

c# gpu opencl gpu-programming opencl.net

11
推荐指数
2
解决办法
8306
查看次数

在IE中使用Java在JavaScript中失败

我想在我的javascript文件中使用java.lang.String.但这在IE中失败了.

是否有针对IE的解决方法.

这就是我想要做的.

var byteArray = (new java.lang.String("asdf")).getBytes();
Run Code Online (Sandbox Code Playgroud)

javascript java internet-explorer

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