import javaawt;
import javaawtevent;
import javaxswing;
public class ThreadPerformed extends JFrame implements ActionListener{
JButton jbOk=new JButton("确定");
double test;
public ThreadPerformed() {
thissetTitle("多线程优化界面的显示");
thissetBounds(200,300,350,200);
thissetVisible(true);
thissetDefaultCloseOperation(JFrameEXIT_ON_CLOSE);
jbOksetMargin(new Insets(0,0,0,0));
thisadd(jbOk,BorderLayoutNORTH);
jbOkaddActionListener(this);
}
public void actionPerformed(ActionEvent e){
MyTread tt=new MyTread();
ttstart();
/ 没有利用多线程点击完确定按钮后,界面由于进行运算而不能响应,
for (long i=0;i<1000000000;i++){
test=test+Mathrandom()MathPI;
}
/
}
public static void main (String[] args) {
new ThreadPerformed();
}
}
//开辟一个单独的线程,负责复杂计算,点击完确定按钮后,界面立刻就响应,计算在后台进行
class MyTread extends Thread {
double test;
public void run(){
for(long i=0;i<1000000000;i++) {
test=test+Mathrandom()MathPI;
}
}
}
这个应该不难吧,对已经释放的地址double free程序都会出问题的,下面写了个简单例子你看下:
#include <iostream>
#include <Windowsh>
const static int ThreadCount = 10;
LPVOID param = "hello";
DWORD WINAPI ThreadProc(LPVOID lpParam)
{
Sleep(100);
delete lpParam;
return 0;
}
int main()
{
HANDLE hThread[ThreadCount];
for (int i = 0; i < ThreadCount; i++)
{
hThread[i] = CreateThread(NULL, 0, ThreadProc, param, 0, 0);
}
WaitForMultipleObjects(ThreadCount, hThread, true, INFINITE);
for (int i = 0; i < ThreadCount; i++)
{
CloseHandle(hThread[i]);
}
return 0;
}
以上就是关于java多线程的例子谁有,共享下。全部的内容,包括:java多线程的例子谁有,共享下。、求一个c++多线程导致程序崩溃的例子、等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)