Tag: multithreading

在Java中处理HTTP调用的大文件

我有一个包含数百万行的文件,我需要处理它。 该文件的每一行都将导致HTTP调用。 我正试图找出解决问题的最佳方法。 我显然可以只读取文件并按顺序拨打电话,但速度会非常慢。 我想并行化调用,但我不确定是否应该将整个文件读入内存(我不是很喜欢的东西)或尝试并行化文件的读取(我是我不确定是否有意义)。 只是在这里寻找一些关于解决问题的最佳方法的想法。 如果有一个类似的东西的现有框架或库我也很乐意使用它。 谢谢。

在Java中,可以在关闭后重新打开System.in

我有一个multithreading控制台应用程序,可以从两个不同的来源获取输入。 一个是用户输入控制台,另一个是网络。 我使用BufferedReader.readline()来获取用户和块的输入,这很好,除非我在等待时收到网络输入。 在这种情况下,我需要通过取消readline()来取消阻止用户线程。 我认为取消的最好方法是关闭System.in并使readline()抛出exception。 在那之后,虽然我需要重新打开它。 那可能吗?

即使我正在调用thread.interrupt(),线程也不会中断

我正在学习如何在Android中使用线程,为此,我做了一个小应用程序,它会播放一系列音符。 这个想法是有一个开始按钮和一个结束按钮(显然)如果按下开始按钮它开始播放音乐,如果你按下结束按钮,它就会停止。 启动按钮工作正常,但问题是结束按钮没有。 我无法弄清楚原因,所以也许你们中的一些人可以帮助我。 这是代码: public class PressAndPlay extends Activity { private volatile Thread initBkgdThread; @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.main); Button startButton = (Button) findViewById(R.id.trigger); startButton.setOnClickListener(new View.OnClickListener() { public void onClick(View view) { // create thread initBkgdThread = new Thread(new Runnable() { public void run() { play_music(); } }); initBkgdThread.start(); } }); […]

JAVAFX:为什么等待游标需要一个新线程?

我明白为什么 scene.setCursor(Cursor.WAIT); long task… scene.setCursor(Cursor.DEFAULT); 需要新线程; 它适用于: private void set_cursore_attesa(final Scene scene) { Runnable r=new Runnable() { @Override public void run() { scene.setCursor(Cursor.WAIT); } }; Thread t=new Thread(r); t.start(); } private void set_cursore_normale(final Scene scene) { Runnable r=new Runnable() { @Override public void run() { scene.setCursor(Cursor.DEFAULT); } }; Thread t=new Thread(r); t.start(); } in my […]

间隔运行Java线程

我有一个需要每10秒执行一次的线程。 该线程包含对另一台服务器上的数据库的多次调用(12-15)。 此外,它还可以访问大约3个文件。 因此,将会有相当多的IO和网络开销。 执行上述操作的最佳策略是什么? 一种方法是使用sleep方法和while循环,但这将是一个糟糕的设计。 在这种情况下,类似于Timer的类会有用吗? 另外,最好是创建几个线程(一个用于IO,一个用于JDBC),而不是让它们在一个线程中运行?

ReentrantReadWriteLock,ReadLock和WriteLock之间有什么区别

我所知道的,writelock就像是同步的。 Readlock和writelock以某种方式相互影响。 ReadLock似乎不能单独工作。

在一个JFrame中同时处理两个JPanel

我是新手到java swing。 在尝试使用图形时,我遇到了这个问题。 我无法在网络上找到合适的解决方案。 所以我想发布在这里。 所以现在让我们来解决我的问题。 首先,我将解释我想做什么。 然后我将解释我的问题。 我试图让两个球在JFrame中同时向不同的方向移动。 (基本上我想做类似连锁反应的游戏,当你点击一个装满的盒子时,球会同时向不同的方向移动)。 在这里我创建两个(截至目前)两个球的JPanels,我试图同时在JFrame上移动。 这是我试过的代码, public class chainGraphics扩展JPanel实现Runnable { int oldX,oldY,newX,newY; int changeX,changeY; Container myPane; public chainGraphics(int oldX,int oldY,int newX,int newY,Container myPane) { // TODO Auto-generated constructor stub this.myPane=myPane; this.oldX=oldX; this.oldY=oldY; this.newX=newX; this.newY=newY; myPane.add(this); } public void paintComponent(Graphics g) { //super.paintComponent(g); System.out.println(“hj”); g.drawOval(changeX,changeY, 40, 40); } @Override public […]

单击按钮后GUI冻结

我正在尝试创建一个客户端/服务器应用程序。 问题是客户端的确认按钮第一次输入工作,但如果我为另一个输入点击相同的按钮,客户端GUI将冻结。 为什么GUI会冻结? 客户: public class ClientGui { private JFrame frmBookPointOf; private JTextField txtRm; private JTextArea txtrBookDetails; private JTextField textField; private JTextField textField_1; private JTextField textField_2; private JTextField textField_3; private JTextField textField_4; private JTextField textField_5; private JComboBox comboBox_1; private JComboBox comboBox; private dbController dbCtrl; private Connection conn; private static Socket client; private static BufferedReader fromServer […]

在thread.sleep()之前JFrame没有更新

我正在使用GUI和JFrames / JPanel创建一个棋盘游戏,您可以在其中与计算机对战。 我有一个名为showPieces()的方法,它通过更改按钮数组(以网格格式布局)上的图像图标来更新电路板GUI。 更新图标后,使用revalidate()和repaint()方法更新GUI。 showPieces()方法有一个参数,每次调用时都需要传递给它。 我遇到的主要问题是我希望人类进行移动,更新GUI,等待1秒钟,计算机使其移动然后循环直到有人获胜。 我的基本代码如下: do{ human.makeMove(); gui.showPieces(data); try { Thread.sleep(1000); } catch(InterruptedException ex) { Thread.currentThread().interrupt(); } computer.makeMove() gui.showPieces(data); }while(playing); 这导致了这样的问题:当人类玩家进行移动时,GUI将冻结一秒钟,然后在延迟之后,两个动作同时进行。 我希望它有意义,但我是Java的新手,可能不得不更多地考虑线程,因为我不太了解它。

外部和内部类方法之间的锁定和同步?

我的问题是,如果我有一些像以下代码 – : public class OuterClass{ public class InnerClass{ public synchronized methodA(){ /* does something */} } } 现在当多个线程想要调用内部类方法时,它们将获取外部类对象或内部类对象的锁定,以及如何修改语句以便我同步访问外部类对象/