小编k88*_*074的帖子

了解Java FixedThreadPool

我试图了解Java FixedThreadPool在实践中如何工作,但文档没有回答我的问题.

假设一个简单的场景,如:

ExecutorService ES= Executors.newFixedThreadPool(3);
List<Future> FL;
for(int i=1;i<=200;i++){
   FL.add(ES.submit(new Task()));
}
ES.shutdown();
Run Code Online (Sandbox Code Playgroud)

这里TaskCallable它构建一些资源,使用它们,然后返回一些输出.

我的问题:Task完成for循环后有多少内存?换句话说:Task一次只有3 个构建资源,或者所有资源都是预先创建的,这样,在.submit我有200个Task(及其资源)等待执行之后?

注意:资源构造发生在构造函数中Task,而不是在call()方法中.

在javadoc中(随意跳过以下内容):让我感到困惑的是Java文档中的以下解释

创建一个线程池,该线程池重用在共享的无界队列中运行的固定数量的线程.在任何时候,最多nThreads线程将是活动的处理任务.

我想这意味着,在我的示例中,所有200个任务都在队列中,但其中只有3个随时执行.

任何帮助都非常感谢.

java multithreading callable executorservice

17
推荐指数
3
解决办法
2994
查看次数

电子表格中是否存在无限?

我想知道是否有任何方法可以在MS Excel中表示无穷大(或足够高的数字).

我特别喜欢Double.POSITIVE_INFINITYDouble.MAX_VALUE在Java中寻找类似的东西.

excel excel-formula

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

如何使我的R脚本可执行?

我知道这是一个很复杂的风险,但在这里没有其他问题我找到了我的问题的答案.以下是我已经尝试过的摘要.

我有一个R脚本文件file.r:

#!/usr/bin/env Rscript 
print("Hello World!")
Run Code Online (Sandbox Code Playgroud)

这是可执行的(chmod +x file.r),并且曾经很好地运行(上次我使用它大约一个月前),发出:

$ ./file.r
Run Code Online (Sandbox Code Playgroud)

但是,今天:

$ ./file.r
/usr/bin/env: 'Rscript\r': No such file or directory
Run Code Online (Sandbox Code Playgroud)

事实上:

$ which Rscript
/usr/bin/Rscript 
Run Code Online (Sandbox Code Playgroud)

因此,我将shebang改为:#!/usr/bin Rscript,但是:

$ ./file.r
/usr/bin: bad interpreter: Permission denied
Run Code Online (Sandbox Code Playgroud)

然后我想我会以超级用户身份运行它,但是:

$ sudo ./file.r
sudo: unable to execute ./file.r: Permission denied
Run Code Online (Sandbox Code Playgroud)

阅读我发现R的全新安装将解决我的问题,所以我卸载并安装了R.不幸的是我之前写的仍然适用.但请注意,以下适用于shebang版本:

$ Rscript file.r
[1] "Hello World!"
Run Code Online (Sandbox Code Playgroud)

我究竟做错了什么?

r shebang rscript

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

angular-route error对path.json的参数必须是字符串

我很难搞清楚这个错误意味着什么.我有以下内容bower.json:

    ...
"dependencies":{
"angular-route":"~1.2.18",
"angular":"~1.2.18"
}
Run Code Online (Sandbox Code Playgroud)

通过bower install我安装我的凉亭包时出现以下错误:

bower angular-route#~1.2.20      error Arguments to path.join must be strings
Stack trace:
TypeError: Arguments to path.join must be strings
    at path.js:360:15
    at Array.filter (native)
    at Object.exports.join (path.js:358:36)
    at GitHubResolver._checkout (/home/ubuntu/.nvm/v0.10.26/lib/node_modules/bower/lib/core/resolvers/GitHubResolver.js:54:21)
    at /home/ubuntu/.nvm/v0.10.26/lib/node_modules/bower/lib/core/resolvers/GitResolver.js:69:21
    at _fulfilled (/home/ubuntu/.nvm/v0.10.26/lib/node_modules/bower/node_modules/p-throttler/node_modules/q/q.js:798:54)
    at self.promiseDispatch.done (/home/ubuntu/.nvm/v0.10.26/lib/node_modules/bower/node_modules/p-throttler/node_modules/q/q.js:827:30)
    at Promise.promise.promiseDispatch (/home/ubuntu/.nvm/v0.10.26/lib/node_modules/bower/node_modules/p-throttler/node_modules/q/q.js:760:13)
    at /home/ubuntu/.nvm/v0.10.26/lib/node_modules/bower/node_modules/p-throttler/node_modules/q/q.js:574:44
    at flush (/home/ubuntu/.nvm/v0.10.26/lib/node_modules/bower/node_modules/p-throttler/node_modules/q/q.js:108:17)
Console trace:
Trace
    at StandardRenderer.error (/home/ubuntu/.nvm/v0.10.26/lib/node_modules/bower/lib/renderers/StandardRenderer.js:72:17)
    at Logger.<anonymous> (/home/ubuntu/.nvm/v0.10.26/lib/node_modules/bower/bin/bower:111:22)
    at Logger.EventEmitter.emit (events.js:95:17)
    at Logger.emit (/home/ubuntu/.nvm/v0.10.26/lib/node_modules/bower/node_modules/bower-logger/lib/Logger.js:29:39)
    at /home/ubuntu/.nvm/v0.10.26/lib/node_modules/bower/lib/commands/index.js:40:20
    at _rejected (/home/ubuntu/.nvm/v0.10.26/lib/node_modules/bower/node_modules/q/q.js:797:24)
    at /home/ubuntu/.nvm/v0.10.26/lib/node_modules/bower/node_modules/q/q.js:823:30
    at …
Run Code Online (Sandbox Code Playgroud)

json node.js express angularjs bower-install

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

Mongoose中的原子多操作

考虑一个架构:

var userSchema = mongoose.Schema({
...
followers: [{ type: mongoose.Schema.Types.ObjectId, ref: 'User' }],
following: [{ type: mongoose.Schema.Types.ObjectId, ref: 'User' }]
...
}
Run Code Online (Sandbox Code Playgroud)

userA下面userB,userB是被推动userA.followinguserA在被推动userB.followers.这两项操作都需要.save().

什么是好方法 - 也许是概念性的 - 确保如果其中一个.save()失败,两个文件都保持不变?

atomicity mongoose node.js

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

如何仅公开私有 git 存储库的一个文件?

从我的私人 git 存储库中,我想公开一个文件。有没有办法在 GitHub、BitBucket 或其他地方实现这一目标?

让我说得更准确。我有一个 Latex 项目,其中包含:

main.tex
chapters/chapter1.tex
...
chapters/chapterN.tex 
main.pdf
Run Code Online (Sandbox Code Playgroud)

我想main.pdf公开并分发指向它的链接,同时将其余文件保密。有没有办法实现这一目标?

git latex github repository bitbucket

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

Passport.js,Express.js和Angular.js路由:它们如何共存?

我道歉这个问题有点长,但我已经研究了一段时间了,真的需要解释所有的故事.

背景:应用程序基于MEAN堆栈,尝试使用Passport.js 授权 Facebook登录.

在Passport.js 指南之后,我实现了类似于:

// HTML
    <a href="/connect/facebook" target="_self">Add a Facebook login</a>
// send to facebook to do the authentication
app.get('/connect/facebook',isLoggedIn, passport.authorize('facebook', 
    { scope : 'email' })
);
// handle the callback after facebook has authorized the user
app.get('/connect/facebook/callback',
    passport.authorize('facebook', {
    successRedirect : '/profile',
    failureRedirect : '/profile'
    }));
Run Code Online (Sandbox Code Playgroud)

注意target=_self在html中跳过Angular路由.显然,授权工作正常.但是,重定向不起作用,因为路由由Angular处理.授权后,我永远不会登陆/profile(但在默认的Angular路线上).

因此,我有一个自定义的回调试图通过Passport.js的建议在这里,使用JSON数据传递到角的希望,让角做路由.我最终做了类似的事情:

// In the controller
$http.get("/connect/facebook").success(function(data){
    // here I wait for json data from the server and do the routing
}); …
Run Code Online (Sandbox Code Playgroud)

node.js express angularjs passport-facebook passport.js

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

如何在ggplot2图例标签中添加Latex代码?

考虑以下示例:

p <- ggplot(data = data.frame(A=c(1,2,3,4,5,6,7,8),B=c(4,1,2,1,3,2,4,1),C=c("A","B","A","B","A","B","A","B")))
p <- p + geom_line(aes(x = A, y = B,color = C))
Run Code Online (Sandbox Code Playgroud)

我想将图例中的标签从“ A”和“ B”更改为Latex公式,分别说“ $ A ^ h_ {tk} $”和“ $ B ^ h_ {tk} $”。

显然,根据此处的答案,存在实现此目的的方法。但是,我真的很努力使其工作。有人可以为我分解吗?

latex r ggplot2

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

用猫鼬更新“过期”

我是 mongodb 和 mongoose 的新手,我很难弄清楚如何执行以下操作。我有一个架构,比如“用户”,其中包括一个这样的字段:

createdAt  : {type: Date, required: true, default: Date.now, expires: '4h'}
Run Code Online (Sandbox Code Playgroud)

因此,当我创建一个新用户时,比如说var user=new User()(假设 Userrequires是正确的模型),创建的新用户将在(大约)4 小时后被删除(如果我理解正确的话)。

我想知道是否有办法更新expires用户的属性。我想做以下事情:

  • 从我的数据库中检索用户
  • 更新expires,以便用户不再过期
  • 保存更改

任何建议将不胜感激!

mongoose mongodb node.js

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

Java:无法覆盖传递子类的抽象方法

我有一个抽象的课

public abstract class SuperclassA{
   public abstract void method(SuperclassB b);
}
Run Code Online (Sandbox Code Playgroud)

并实施

public class SubclassA extends SuperclassA{

   @override
   public void method(SubclassB b){
   }
}
Run Code Online (Sandbox Code Playgroud)

哪里SubclassB extends SuperclassB.

我的NetBeans编辑器抱怨说我没有压倒一切method.我能做些什么来实际传递一个子类method

java abstract-class subclass extend

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