小编adh*_*dhg的帖子

如果可以使用synchronized(this),为什么要使用ReentrantLock?

我试图理解是什么让并发锁如此重要,如果可以使用synchronized (this).在下面的虚拟代码中,我可以做到:

  1. 同步整个方法或同步易受攻击的区域(synchronized(this){...})
  2. 或者使用ReentrantLock锁定易受攻击的代码区域.

码:

    private final ReentrantLock lock = new ReentrantLock(); 
    private static List<Integer> ints;

    public Integer getResult(String name) { 
        .
        .
        .
        lock.lock();
        try {
            if (ints.size()==3) {
                ints=null;
                return -9;
            }   

            for (int x=0; x<ints.size(); x++) {
                System.out.println("["+name+"] "+x+"/"+ints.size()+". values >>>>"+ints.get(x));
            }

        } finally {
            lock.unlock();
        } 
        return random;
}
Run Code Online (Sandbox Code Playgroud)

java concurrency multithreading synchronize reentrantlock

306
推荐指数
5
解决办法
14万
查看次数

如何将2个图(ggplot)组合成一个图?

通过使用R,是否可以将2 ggplot放在一起(即,在同一图上)?我希望显示来自2个不同的数据帧趋势,而不是把他们一个挨着另一个,我想他们在一个情节集成在一起,只改变其中一个颜色(黑点).

更具体地说,我有以下2个视觉效果:

ggplot(visual1, aes(ISSUE_DATE,COUNTED)) + geom_point() + geom_smooth(fill="blue", colour="darkblue", size=1)
Run Code Online (Sandbox Code Playgroud)

ggplot(visual2, aes(ISSUE_DATE,COUNTED)) + geom_point() + geom_smooth(fill="red", colour="red", size=1)
Run Code Online (Sandbox Code Playgroud)

他们看起来像这样(两个都有黑点,我需要将其中一个更改为不同的东西):

在此输入图像描述

在此输入图像描述

plot visualization r graph ggplot2

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

计算机视觉,C++或Java

我是计算机视觉领域的新手,最近我使用OpenCV和Java实现了一些例子.我对这个领域的潜力印象深刻,并希望继续学习更多.

我了解到OpenCV是用C++编写的,而Java有一个包装器(JavaCV),我知道Java中的应用程序比C++中的应用程序要慢,大多数企业应用程序都是用C++编写的.

我的问题是:我有几年的Java经验,我觉得用它编写任何应用程序都很舒服; 转移到C++学习简历是否应该是聪明的还是我应该坚持使用Java并使用它的包装器.

c++ java opencv computer-vision

13
推荐指数
3
解决办法
7200
查看次数

增加核心数时降低性能

我的mac配备了16个核心.

System.out.println(Runtime.getRuntime().availableProcessors());  //16
Run Code Online (Sandbox Code Playgroud)

我正在运行下面的代码,以了解使用我的核心的有效性.线程'CountFileLineThread'只计算文件中的行数(文件夹中有133个文件)

我在这条线上做笔记:

ExecutorService es = Executors.newFixedThreadPool(NUM_CORES);
Run Code Online (Sandbox Code Playgroud)

NUM_CORES在1到16之间.

您将从下面的结果中注意到,在5个核心之上,性能开始下降.我不希望6芯及以上的产品"收益递减"(btw,7芯需要超过22分钟,你好?!?!)我的问题是为什么?

在此输入图像描述

public class TestCores
{   
  public static void main(String args[]) throws Exception
  {
    long start = System.currentTimeMillis();
    System.out.println("START");

    int NUM_CORES = 1;

    List<File> files = Util.getFiles("/Users/adhg/Desktop/DEST/");
    System.out.println("total files: "+files.size());
    ExecutorService es = Executors.newFixedThreadPool(NUM_CORES);
    List<Future<Integer>> futures = new ArrayList<Future<Integer>>();
    for (File file : files)
    {
        Future<Integer> future = es.submit(new CountFileLineThread(file));
        futures.add(future);
    }

    Integer total = 0;

    for (Future<Integer> future : futures)
    {
        Integer result = future.get();
        total+=result;
        System.out.println("result :"+result);

    }

    System.out.println("----->"+total); …
Run Code Online (Sandbox Code Playgroud)

java concurrency optimization performance multithreading

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

什么更有效?清空一个对象或创建一个新对象?

"新"有多贵?我的意思是,如果我的目标是重复使用同一个对象,或者如果对象是"超出范围",那么它与清空它是一样的吗?

例如,假设一个方法创建一个列表:

List<Integer> list = new ArrayList<Integer>(); 
Run Code Online (Sandbox Code Playgroud)

在方法结束时,列表不再使用 - 它是否意味着没有分配给它的内存,或者它是否意味着有一个指向它的空指针(因为它是'创建').

或者,我可以向方法发送一个'list'并在方法结束时将其清空:list.removeAll(list);将从内存的角度来看有什么不同吗?

谢谢!

java memory-management list new-operator memory-efficient

11
推荐指数
1
解决办法
3018
查看次数

Matplotlib:用A,B,C注释图中的子图

在向科学期刊提交论文时,经常需要用A,B,......来枚举图形的不同子图.

在此输入图像描述

这听起来像是一个非常常见的问题,我试图用matplotlib自动找到一种优雅的方法,但我很惊讶地发现它没有任何内容.但也许我没有使用正确的搜索词.理想情况下,我正在寻找一种方法来注释,如果图形被调整大小或子图通过,或类似移动fig.subplots_adjust,字母相对于子图保持在原位fig.tight_layout.

任何帮助或解决方案将不胜感激

python annotations matplotlib

11
推荐指数
1
解决办法
6896
查看次数

如何排序番石榴多图?(KEY = DATE)

我有一个

Multimap<Date,Invoice> multimap = ArrayListMultimap.create();
Run Code Online (Sandbox Code Playgroud)

来自番石榴.我想知道如何在多图中排序日期键.

目前,我这样做:

        Iterator<Date> dateItr = multimap.keySet().iterator();
        Set<Date> treeSet = new TreeSet<Date>(Collections.reverseOrder());
Run Code Online (Sandbox Code Playgroud)

然后我循环遍历treeSet迭代器.知道如何避免这种规避吗?

java sorting multimap guava

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

Eclipse终端在某个点之后修剪字符.限制宽度大小

eclipse终端由于某种原因拒绝接收额外的字符.我的直观方法是,Windows-->preferences-->Terminal但没有任何表明宽度大小限制.

在此输入图像描述

eclipse windows terminal cmd

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

Django 和 Folium 集成

Django 新手在这里:我的目标是将 Folium 集成到 html 页面。所以我目前所拥有的:

民意调查/views.py

def show_map(request):  
    #creation of map comes here + business logic
    m = folium.Map([51.5, -0.25], zoom_start=10)
    test = folium.Html('<b>Hello world</b>', script=True)
    popup = folium.Popup(test, max_width=2650)
    folium.RegularPolygonMarker(location=[51.5, -0.25], popup=popup).add_to(m)

    context = {'my_map': m}

    return render(request, 'polls/show_folium_map.html', context)
Run Code Online (Sandbox Code Playgroud)

民意调查/网址.py

urlpatterns = [   
       path('show_my_map', views.show_map, name='show_map'),
Run Code Online (Sandbox Code Playgroud)

]

show_folium_map.html

 <h1>map result comes here</h1>
 {{ my_map }}
Run Code Online (Sandbox Code Playgroud)

问题是我得到了地图的“to_string”值(我向你保证我看到了)。那么我怎样才能以这样的方式集成地图,我可以实际看到地图并定义大小?

在此处输入图片说明

python django maps folium

7
推荐指数
3
解决办法
4495
查看次数

在groupby中按日期时间过滤的有效方法

鉴于DataFrame生成:

import numpy as np
import pandas as pd
from datetime import timedelta

np.random.seed(0)
rng = pd.date_range('2015-02-24', periods=14, freq='9H')
ids = [1]*5 + [2]*2 + [3]*7
df = pd.DataFrame({'id': ids, 'time_entered': rng, 'val': np.random.randn(len(rng))})
Run Code Online (Sandbox Code Playgroud)

df

    id  time_entered        val
0   1   2015-02-24 00:00:00 1.764052
1   1   2015-02-24 09:00:00 0.400157
2   1   2015-02-24 18:00:00 0.978738
3   1   2015-02-25 03:00:00 2.240893
4   1   2015-02-25 12:00:00 1.867558
5   2   2015-02-25 21:00:00 -0.977278
6   2   2015-02-26 06:00:00 0.950088
7   3   2015-02-26 15:00:00 …
Run Code Online (Sandbox Code Playgroud)

python optimization numpy pandas pandas-groupby

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