相关疑难解决方法(0)

CountDownLatch和CyclicBarrier的真实生活示例

我们的一位培训师在解释CountDownLatch和CyclicBarrier之间的差异时给出了一个例子.

CountDownLatch:假设一块石头可以被10个人抬起,所以你将等待所有10个人来.然后只有你可以抬起石头.

CyclicBarrier:如果你要去野餐,你需要先在一个共同的地方见面,从那里开始你的旅程.

如果有人同意这些意见,请给我一些细节.

我已经阅读了这两个类的sun API.但我还需要一些解释.

java concurrency conceptual

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

在swing applet中使用的套接字

我应该用Java创建一个基于Swing和gui的服务器和客户端.我需要以某种方式建立一个从服务器到客户端,从客户端到服务器的套接字,并传递某种字符串.I我希望稍后有一个函数可以根据套接字中的字符串做几件事.
出于某种原因,我找不到一个简单的代码示例,它以简单的方式显示了它是如何完成的.
任何人都有任何简单的例子,或者可以解释它是如何完成的?

java sockets swing web-applications

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

等待多个SwingWorkers

请考虑以下代码片段:

import java.awt.FlowLayout;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.lang.reflect.InvocationTargetException;
import javax.swing.*;

public class TestApplet extends JApplet
{
    @Override
    public void init()
    {
        try
        {
            SwingUtilities.invokeAndWait(new Runnable()
            {
                @Override
                public void run()
                {
                    createGUI();
                }
            });
        }
        catch(InterruptedException | InvocationTargetException ex)
        {
        }
    }

    private void createGUI()
    {
        getContentPane().setLayout(new FlowLayout());
        JButton startButton = new JButton("Do work");
        startButton.addActionListener(new ActionListener()
        {
            @Override
            public void actionPerformed(ActionEvent ae)
            {
                JLabel label = new JLabel();
                new Worker(label).execute();
            }
        });
        getContentPane().add(startButton);
    }

    private class Worker extends SwingWorker<Void, …
Run Code Online (Sandbox Code Playgroud)

java swing multithreading swingworker wait

11
推荐指数
1
解决办法
6620
查看次数

ExecutorService,如何知道所有线程何时完成而不阻塞主线程?

我有一个多线程实现,我创建一个ExecutorService并提交要执行的任务,我想知道所有线程被提交的时间已经完成而没有阻塞主线程和UI.我试过ExecutorService.awaitTermination()但它阻止了主线程和UI.我搜索了很多,但我似乎无法找到一种优雅的方式来做到这一点.我正在考虑创建另一个线程来计算完成的线程数量,并在它们全部完成时启动一个事件,但这不是一个好方法,我想要一个更好的解决方案!

java swing multithreading executorservice

6
推荐指数
2
解决办法
7286
查看次数