小编Ana*_*lov的帖子

Java 8并行流和ThreadLocal

我试图找出如何在Java 8并行流中复制ThreadLocal值.

所以如果我们考虑这个:

    public class ThreadLocalTest {

        public static void main(String[] args)  {
            ThreadContext.set("MAIN");
            System.out.printf("Main Thread: %s\n", ThreadContext.get());

            IntStream.range(0,8).boxed().parallel().forEach(n -> {
                System.out.printf("Parallel Consumer - %d: %s\n", n, ThreadContext.get());
            });
        }

        private static class ThreadContext {
            private static ThreadLocal<String> val = ThreadLocal.withInitial(() -> "empty");

            public ThreadContext() {
            }

            public static String get() {
                return val.get();
            }

            public static void set(String x) {
                ThreadContext.val.set(x);
            }
        }
    }
Run Code Online (Sandbox Code Playgroud)

哪个输出

Main Thread: MAIN
Parallel Consumer - 5: MAIN
Parallel Consumer - 4: MAIN
Parallel …
Run Code Online (Sandbox Code Playgroud)

java threadpool java-8 forkjoinpool

12
推荐指数
1
解决办法
4169
查看次数

RactiveJS可拖动利用mouseevent

我试图用RactiveJS利用代理事件(on-mousedown,up,move,out)实现一个简单的可拖动DIV

以下JSFiddle工作正常,但是当用户移动鼠标太快时,拖动停止.这只是因为我的案例中的mouseevent处理程序位于DIV标记而不是正文或文档元素上.我的最终想法是创建一个滑块组件,但我正在寻求提供最佳的用户体验,并使这项工作更像JQuery的可拖动.

模板:

<div class="rect {{drag ? 'dragging' : ''}}" 
         on-mousedown="startDrag"
         on-mouseup="stopDrag" 
         on-mouseout="stopDrag" 
         on-mousemove="drag"
         style="top:{{top}}px; left:{{left}}px;">
</div>
Run Code Online (Sandbox Code Playgroud)

反应实例:

var ractive = new Ractive({
    el: "#content",
    template: "#template",
    data: {left:20,top:80}
});
ractive.on({
    startDrag : function (event) {
        this.set({
            'drag': true,
            'mouseX': event.original.clientX - this.get('left'),
            'mouseY': event.original.clientY - this.get('top')
        });
    },
    stopDrag : function (event) {
        this.set('drag', false);
    },
    drag : function (event) {
        if(this.get('drag')) {
            var x = event.original.clientX, 
                y = event.original.clientY;
            this.set({
                top: y - this.get('mouseY') ,
                left: …
Run Code Online (Sandbox Code Playgroud)

javascript ractivejs

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

标签 统计

forkjoinpool ×1

java ×1

java-8 ×1

javascript ×1

ractivejs ×1

threadpool ×1