问题列表 - 第32047页

Java ThreadPool用法

我正在尝试编写一个多线程的Web爬虫.

我的主要入门类有以下代码:

ExecutorService exec = Executors.newFixedThreadPool(numberOfCrawlers);
while(true){
    URL url = frontier.get();
    if(url == null)
         return;
exec.execute(new URLCrawler(this, url));
}
Run Code Online (Sandbox Code Playgroud)

URLCrawler获取指定的URL,解析HTML从中提取链接,并将看不见的链接安排回边界.

边界是未抓取的URL队列.问题是如何编写get()方法.如果队列为空,则应等待任何URLCrawlers完成,然后再次尝试.仅当队列为空且当前没有活动的URLCrawler时,它才应返回null.

我的第一个想法是使用AtomicInteger来计算当前工作URLCrawler的数量以及notifyAll()/ wait()调用的辅助对象.开始时每个爬虫都会增加当前工作URLCrawler的数量,并在退出时递减它,并通知对象它已完成.

但我读到notify()/ notifyAll()和wait()是一些不赞成做线程通信的方法.

我应该在这个工作模式中使用什么?它类似于M生产者和N个消费者,问题是如何处理生产者的匮乏.

java concurrency multithreading java.util.concurrent

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

我可以在不安装Visual Studio的情况下使用mstest.exe吗?

我想使用mstest.exe在构建服务器上运行我的单元测试,但我不想在构建服务器上安装Visual Studio.我可以在没有Visual Studio的情况下安装MSTest吗?

mstest build-server visual-studio

104
推荐指数
3
解决办法
5万
查看次数

以编程方式更改FormsAuthenticationTicket中的用户数据

我正在使用FormsAuthenticationTicket并放置数据并将数据传递到所有页面.如果我们不更改任何数据,它将起作用.

所以,现在如果我想更改数据并将其传递给cookie并加密,那么如何以编程方式更改数据.

请给我一个以HttpCookie编程方式更改数据的解决方案.

forms-authentication

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

C/C++中的基本多线程 - 提示,建议,教程,某些方向?

我想学习如何构建一个多线程应用程序,但我甚至不知道从哪里开始.

大多数人如何实现多线程?他们使用升级库吗?还有其他方法吗?(使用标准C/C++)

我理解这个概念,但完全不知道从哪里开始真正学会如何去做.谁能推荐任何东西?

http://msdn.microsoft.com/en-us/library/7t9ha0zh%28v=VS.80%29.aspx <---这些是标准的C++,还是一些仅限Microsoft的实现?

我是否认为多线程库包含在Windows API中?我在MSDN上找到了一个例子( http://msdn.microsoft.com/en-us/library/esszf9hw%28v=VS.80%29.aspx),它使用的函数(ReleaseMutex等)似乎在windows中.H.这是大多数人在进行Windows编程时使用的吗?

c c++ multithreading

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

RichFaces与PrimeFaces(性能)

我正在使用JSF 2.0,我正在寻找一个在性能方面负载最小的copmponent库.如果我在RichFaces和PrimeFaces之间做出选择,哪一个更好用?两者的优点和缺点是什么?

jsf richfaces primefaces

42
推荐指数
4
解决办法
5万
查看次数

greasemonkey将onclick事件添加到按钮

我在动态创建的按钮上附加了onclick事件,但事件未触发.

var ind = location.href.indexOf('http://www.example.com/');
function init(){
    alert('h');
}
if(ind != -1){      
    var elem = document.createElement("input"); 
    elem.id ='btnGumb';
    elem.value = 'Select Check box';
    elem.type = 'button';
    elem.style.position = 'fixed';
    elem.style.left = '0px';
    elem.style.top = '0px';

    //this is not working
    elem.setAttribute('onclick', 'init();');

    //but alert is working:   elem.setAttribute('onclick', 'alert("h");');

    document.body.appendChild(elem); 

}
Run Code Online (Sandbox Code Playgroud)

javascript greasemonkey

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

如何获得参考的类型?

Perl中是否有任何函数可用于检查引用类型:

my $ref=\@array;
Run Code Online (Sandbox Code Playgroud)

我需要array通过函数获取引用类型.

perl

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

如何判断方法是否在类中定义?

class C1
  unless method_defined? :hello  # Certainly, it's not correct. I am asking to find something to do this work.
    def_method(:hello) do
      puts 'Hi Everyone'
    end
  end
end
Run Code Online (Sandbox Code Playgroud)

那么,如何判断方法是否定义?

ruby methods ruby-on-rails defined

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

从WPF MVVM项目中删除代码隐藏文件

我正在使用MVVM模式编写WPF应用程序.我不需要为我的用户控件提供代码隐藏文件.优雅地删除这些文件的最佳方法是什么?

我可以创建一个用户控件类,然后我可以将这个类用于我的所有视图.(更多信息:http://sondreb.com/blog/post/No-Code-Behind-for-MVVM.aspx)

还有其他方法吗?

谢谢.

wpf code-behind mvvm

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

Java同步块

如果我们有一个方法:

public void doSomething(){
    synchronized(this){
        //some code processing here
    }
    String temp = "init"; //instead of i++
    synchronized(this){
        //some other code processing here
    }
}
Run Code Online (Sandbox Code Playgroud)

这种方法相当于public synchronized void doSomething()

是否有任何理由假设某些执行中的线程调度程序不会导致与同步整个函数有效的流程相同?那是:

  • Thread1进入第一个同步块.
  • Thread2块.
  • Thread1继续i++并移动到第二个同步块,而Thread2保持阻塞状态.
  • 其结果是,线程2进入后的方法线程1已经退出都同步块.

我需要知道的是:

  • 我能指望所有执行上下文这两个线程(线程1线程2)可以在同一时间在该方法?例如,线程2在第一同步块和线程1中的第二同步块,以实现并发.
  • 是否会有一些执行流程,其中只有一个线程将在该方法中(一次)有效地序列化整个流程,使其等效于public synchronized void doSomething()

java multithreading synchronization

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