我听说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
我根据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)