小编met*_*ori的帖子

Java并发:用很少的线程执行许多"无限"任务

我正在为一组N粒子构建一个(并发)模拟器,这些粒子根据牛顿定律在空间中移动.我的想法是将每个粒子建模为一个任务,它与其他粒子(任务)相互作用,以获得它们的位置和质量,以便计算它所受的净力.每个粒子任务都是如此

while(true){
   force = thisParticle.calculateNetForce(allTheParticles);
   thisParticle.waitForAllTheParticlesToCalculateNetForce(); // synchronization
   thisParticle.updatePosition(force);
   thisParticle.waitForAllTheParticlesToUpdateTheirState(); // synchronization
}
Run Code Online (Sandbox Code Playgroud)

我可以拥有大量粒子(100或更多),因此我无法创建如此多的Java线程(映射到物理线程).我的想法是使用Runtime.getRuntime().availableProcessors()+1可以执行许多任务的线程.

但是,我不能使用FixedThreadExecutor,因为粒子任务不会结束.我想使用FixedThreadExecutor,它必须也能够在内部执行某种调度.你知道为此目的吗?

或者,您是否可以通过并发的角度(例如,不同的任务分解)向我建议更好的方法来建模这样的系统?

Ps:我仅限于"经典"并发机制,不包括演员或类似的架构.

java concurrency executors

10
推荐指数
2
解决办法
827
查看次数

Sharepoint 2013中的联合身份验证:获取rtFa和FedAuth cookie

方案如下:我需要对用户(使用他的大学帐户)执行联盟身份验证到他的大学的Sharepoint站点,并获得FedAuth和rtFa cookie(我必须将其传递给SharePoint REST webservices)为了访问资源).

我做了一些尝试,但每个问题至少有一个问题:

1)使用Microsoft.SharePoint.Client库

ClientContext context = new ClientContext(host);
SharePointOnlineCredentials creds = new SharePointOnlineCredentials(user, passw);
context.Credentials = creds;

Uri sharepointuri = new Uri(host);
string authCookie = creds.GetAuthenticationCookie(sharepointuri);

Web web = context.Web;
context.Load(web, w=>w.Lists);
context.ExecuteQuery();

fedAuthString = authCookie.Replace("SPOIDCRL=", string.Empty);
Run Code Online (Sandbox Code Playgroud)

这样我设法获得FedAuth cookie,但我无法获得rtFa cookie.

我怎么能在这一点上获得rtFa cookie?我是否可以拦截此类操作中涉及的HTTP请求(即context.ExecuteQuery()) - 其中可能包含标题中的rtFa cookie?或者,我是否可以通过仅利用FedAuth cookie来获取rtFa cookie?

2)使用MsOnlineClaimsHelper

这是一个帮助类,可以在Internet上找到(例如,这里http://blog.kloud.com.au/tag/msonlineclaimshelper/).

该类实际上与普通身份验证一起使用,但在联合身份验证时失败.

所以我调整它以使它在这种情况下工作.只要我理解,步骤如下:

  1. 使用用户名和密码对大学的STS ADFS服务("联合方"或ISSUER)进行身份验证 - 这里的依赖方是Sharepoint O365 STS(" https://login.microsoftonline.com/extSTS.srf ")
  2. 如果auth成功,我会收到包含声明和安全令牌的SAML断言
  3. 现在,我通过传递安全令牌对SharePoint站点进行身份验证
  4. 如果令牌被识别,我会收到包含两个cookie的响应(FedAuth和rtFa)

我不是这方面的专家,我提出以下代码:

这是调用上述方法的代码,并尝试通过两个步骤从凭证中获取FedAuth和rtFa(步骤1:从联合方获取SAML令牌;步骤2:将令牌从联合方传递到Sharepoint):

     private List<string> GetCookies(){ …
Run Code Online (Sandbox Code Playgroud)

c# authentication sharepoint claims-based-identity ws-federation

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

HubSection中的DataTemplate没有达到全高

我有以下代码:

<HubSection x:Name="modules_section" ...>
    <DataTemplate>
        <StackPanel Orientation="Vertical">
        ..................................
Run Code Online (Sandbox Code Playgroud)

如何让StackPanel占据HubSection的整个高度?

VerticalAlignment ="拉伸"不起作用.

我也尝试过使用绑定

<StackPanel Height={Binding ElementName=modules_section, Path=ActualHeight}" ...>
Run Code Online (Sandbox Code Playgroud)

但是hub部分的Actualheight似乎是0(我还尝试在代码隐藏中设置它并调试以查看值).

winrt-xaml windows-store-apps windows-8.1

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

在黄瓜中挂钩检查 java 中的场景失败

当我阅读如何在失败时为黄瓜场景添加清理时,我在互联网上得到了这段代码。

After do |s|
  if s.failed?
    #If you are on an iOS Device
        $driver.quit
         sleep(time_for_driver_ready)
    #else
         reset  
  end
end
Run Code Online (Sandbox Code Playgroud)

这是红宝石。我在 java 中工作,有什么方法可以s.failed?在 java 中实现,因为在 java 中,after 方法声明不包含场景变量。

ruby java testing cucumber

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