小编Joe*_*ner的帖子

Java 8:并行FOR循环

我听说Java 8提供了很多关于并发计算的实用程序.因此,我想知道并行化给定for循环的最简单方法是什么?

public static void main(String[] args)
{
    Set<Server> servers = getServers();
    Map<String, String> serverData = new ConcurrentHashMap<>();

    for (Server server : servers)
    {
        String serverId = server.getIdentifier(); 
        String data = server.fetchData();

        serverData.put(serverId, data);
    }
}
Run Code Online (Sandbox Code Playgroud)

java concurrency for-loop java.util.concurrent concurrent-programming

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

Finder Sync:传递给动作的Sender是NSMenuItem的不同实例

我根据Apple提供的示例实现了Finder Sync扩展.

单击新创建的上下文菜单项后,将sampleAction执行相应的操作.不幸的是,传递给方法的发送方与创建的实例不匹配menuForMenuKind.

代码

- (NSMenu *)menuForMenuKind:(FIMenuKind)whichMenu
{
    NSMenuItem* menuItem = [[NSMenuItem alloc] initWithTitle:@"testTitle" action:@selector(sampleAction:) keyEquivalent:@""];
    menuItem.tag = 1;

    // print menu attributes
    NSLog(@"------------------original menu-----------------");
    NSLog(@"menu address: %p", menuItem);
    NSLog(@"menu tag: %ld", menuItem.tag);
    NSLog(@"menu title: '%@'", menuItem.title);

    NSMenu *menu = [[NSMenu alloc] initWithTitle:@""];
    [menu addItem:menuItem];

    return menu;
}

- (IBAction)sampleAction:(id)sender
{
    if( [sender isKindOfClass:[NSMenuItem class]])
    {
        NSMenuItem* menuItem = sender;

        NSLog(@"------------------menu passed to action-----------------");
        NSLog(@"menu address: %p", menuItem);
        NSLog(@"menu tag: %ld", menuItem.tag);
        NSLog(@"menu title: '%@'", menuItem.title); …
Run Code Online (Sandbox Code Playgroud)

macos finder nsmenuitem findersync

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