小编Rah*_*rma的帖子

尝试捕获比尝试资源更多或更少昂贵

我刚刚开始回到Java并且从未有机会使用它try-with-resources.从表面上看,它看起来很棒,因为它可以减少代码,但在引擎盖下它是否比传统的操作或多或少昂贵的操作try-catch?我知道try-catch已经是一个昂贵的操作,因此我的好奇心.

我给这两种类型做了一个简单的测试,并没有发现任何差别:

测试实例

尝试资源测试

long startTime = System.currentTimeMillis();
ArrayList<String> list = null;

try (Scanner sc = new Scanner(new File("file.txt"))) {
    list = new ArrayList();
    while (sc.hasNext()) {
        list.add(sc.next());
    }
} catch (Exception ex) {
    System.err.println("Error: " + ex.getMessage());
} finally {
    long endTime = System.currentTimeMillis();
    System.out.println("The program completed in " + (endTime - startTime) + " ms");
}
Run Code Online (Sandbox Code Playgroud)

传统的Try-Catch测试

long startTime = System.currentTimeMillis();
ArrayList<String> list = null;
Scanner sc = null;

try { …
Run Code Online (Sandbox Code Playgroud)

java exception-handling

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

如何解决Python多线程程序中的"cassandra.cluster.NoHostAvailable"

我试图使用多线程Python程序将记录插入Cassandra.我在3台机器上同时运行这个程序.有一段时间记录被插入,但后来我得到了以下异常.我正在使用datastax提供的驱动程序.

cassandra.cluster.NoHostAvailable

我做了一些搜索并找到了(来源:https://datastax.github.io/python-driver/api/cassandra/cluster.html)

exception cassandra.cluster.NoHostAvailable
在尝试操作但所有连接繁忙,失效,关闭或在使用时导致错误时触发.

我的问题是:
1.这是一个正常的例外,可能面临与Cassandra太多连接.
2.如果我想创建与cassandra的许多连接/会话,我将如何解决这个问题.(我知道创建太多会话是不可取的,它会影响服务器性能,因为每个会话消耗少量内存)

下面是代码片段.

cluster = Cluster(['192.168.1.21'])
session = cluster.connect('myNameSpace')

def insertInToCassandra(catRange):
    for x in catRange:
        //function to insert records into Cassandra table

ProductRange = [
    range(900,920),
    range(921,940),
    range(941,960),
    range(961,980),
    range(981,1000)
     ]

# Make the Pool of workers
pool = ThreadPool(20)

# Open the urls in their own threads
# and return the results
results = pool.map(insertInToCassandra, ProductRange)

#close the pool and wait for the work to finish
pool.close()
pool.join()
Run Code Online (Sandbox Code Playgroud)

python cassandra cassandra-2.0

9
推荐指数
1
解决办法
5633
查看次数

检查是否在Android中启用了GPS

我正在开发一个包含谷歌地图的项目.当活动加载时,我想检查GPS是否启用.所以我使用以下代码重定向到包含设置的页面.

if(!manager.isProviderEnabled( LocationManager.GPS_PROVIDER ))
        {
             AlertDialog.Builder alertDialogBuilder = new AlertDialog.Builder(this);
                alertDialogBuilder.setMessage("GPS is disabled in your device. Would you like to enable it?")
                .setCancelable(false)
                .setPositiveButton("Goto Settings Page To Enable GPS",
                        new DialogInterface.OnClickListener(){
                    public void onClick(DialogInterface dialog, int id){
                        Intent callGPSSettingIntent = new Intent(
                                android.provider.Settings.ACTION_LOCATION_SOURCE_SETTINGS);
                        startActivity(callGPSSettingIntent);
                    }
                });
                alertDialogBuilder.setNegativeButton("Cancel",
                        new DialogInterface.OnClickListener(){
                    public void onClick(DialogInterface dialog, int id){
                        dialog.cancel();
                    }
                });
                AlertDialog alert = alertDialogBuilder.create();
                alert.show();
        }
Run Code Online (Sandbox Code Playgroud)

但问题是,如果我启用GPS并返回应用程序,我希望页面再次加载,以便加载地图.如何确保我的活动再次运行?

java eclipse gps android

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

Android Studio - 无法下载工件

我是Android Studio IDE的新手.我使用Android Studio创建了一个示例项目,当我尝试构建它时,它出现以下错误.

Error:A problem occurred configuring root project 'SampleApp".
> Could not resolve all dependencies for configuration ':classpath'.
   > Could not download artifact 'org.bouncycastle:bcprov-jdk15on:1.48:bcprov-jdk15on.jar': No     
     cached version available for offline mode
Run Code Online (Sandbox Code Playgroud)

任何人都可以弄清楚我做错了什么.

android android-studio

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

SolrCloud - 如何解决"找不到集合configName"

我正试图以SolrCloud模式启动Solr .我已经创建了一个新的集合,collection1core.properties通过设置属性在文件中更改了它的名称name=logmail.

但是当我启动Solr时,我收到以下错误

$ java -Dcollection.configName=logmail -DzkRun -Dnumshards=2 -DBootstrap_confdir=./solr/logmail/conf -jar start.jar
Run Code Online (Sandbox Code Playgroud)

2165 [main] INFO org.apache.solr.common.cloud.ZkStateReader - 从ZooKeeper更新集群状态... 2179 [OverseerStateUpdate-94955713964081152-127.0.1.1:8983_solr-n_0000000001] INFO org.apache.solr.cloud.Overseer - 开始处理主队列2197 [main] INFO org.apache.solr.core.CoresLocator - 在/ home/rahul/Desktop/dev/solrcloud/solr 2203 [main] INFO org.apache.solr下查找核心定义. core.CoresLocator - 在/ home/rahul/desktop/dev/solrcloud/solr/logmail/2204 [main]中找到核心logmail INFO org.apache.solr.core.CoresLocator - 在/ home/rahul/Desktop/dev中找到核心集合1/solrcloud/solr/collection1/2204 [main] INFO org.apache.solr.core.CoresLocator - 找到2个核心定义2207 [coreLoadExecutor-6-thread-1] INFO org.apache.solr.cloud.ZkController - 发布core = logmail state = down collection = logmail 2207 [coreLoadExecutor-6-thread-2] INFO org.apache.solr.cloud.ZkController - 发布core = collection1 state = down …

solr solrcloud

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

Delphi中不同Unit中具有相同名称的常量

我正在使用Delphi 6.我创建了一个项目,Unit1Unit2在其中添加了两个单元.
我有一个常量命名XML_DIAGRAM='Diagram_Data'为XML节点的常量,我也在单元中声明了相同的常量Unit2但是具有不同的值'Diagram_Name'并且我在主单元中使用了两个单元.我的问题是,当我访问常量时,XML_DIAGRAM它总是包含来自单位的常量值Unit2.
如果在多个单元中声明具有相同名称的常量,那么当用户发出请求时,Delphi如何决定从哪个单位获取常量?

我的代码:

unit Unit1;   
const
DIAGRAM = 'Diagram_Data';   
end.
Run Code Online (Sandbox Code Playgroud)


 unit Unit2;         
 const
 DIAGRAM = 'Diagram_Name';       
 end.
Run Code Online (Sandbox Code Playgroud)


uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs,Unit1,Unit2;
Run Code Online (Sandbox Code Playgroud)

delphi

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

如何在Windows上安装erpnext

我在Ubuntu上安装了ERPNext,现在我有一个特定的要求,我想在Windows操作系统上安装它.

我已经下载了以下先决条件.
1. Python 2.7
2. MariaDB

在Windows上安装erpnext的正确步骤是什么??

erp mariadb erpnext

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

如何在Delphi中使用XMLHTTPRequest获取图像二进制数据

我需要XMLHttpRequest在Delphi中使用二进制图像数据.我使用以下代码,但它不起作用,有人可以告诉我这个代码有什么问题,提前谢谢.

//I am using this function to get Image Binary data into Memory Stream.
procedure SendGETRequest(p_Url: string; p_resStream: TMemoryStream);
begin  
  FXmlHttpReq.open(METHOD_GET, p_Url, false, FUsername, FPassword);
  FXmlHttpReq.setRequestHeader(HTTP_AUTHENTICATION, HTTP_BASIC + EncodeBase64(
    FUsername + ':'+FPassword));
  FXmlHttpReq.setRequestHeader(HTTP_CACHE_CONTROL, HTTP_NO_CACHE);
  //FXmlHttpReq.setRequestHeader('Content-type','application/octet-stream');
  FXmlHttpReq.send('');

  if not VarIsEmpty(FXmlHttpReq.responseBody) then
  begin
   p_resStream:= OleVariantToMemoryStream(FXmlHttpReq.responseStream);
  end;//if...
end;

function OleVariantToMemoryStream(OV: OleVariant): TMemoryStream;
var
  Data: PByteArray;
  Size: integer;
begin
  Result := TMemoryStream.Create;
  try
    Size := VarArrayHighBound (OV, 1) - VarArrayLowBound(OV, 1) + 1;
    Data := VarArrayLock(OV);
    try
      Result.Position := 0;
      Result.WriteBuffer(Data^, Size); …
Run Code Online (Sandbox Code Playgroud)

delphi xmlhttprequest

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