java多线程传参
Ⅰ java多线程方法有哪些
java实现线程常用到的方法有三种,供参考:
/**
*方法一:继承Thread类
*
*@authorqd
*
*/
{
@Override
publicvoidrun(){
System.out.println("run方法里面编写业务代码");
}
publicstaticvoidmain(String[]args){
MyThreadmyThread=newMyThread();
//调用start方法启动线程
myThread.start();
MyThread1myThread1=newMyThread1();
Threadthread=newThread(myThread1);
//调用start方法启动线程
thread.start();
}
}
/**
*方法二:实现Runnable接口
*
*@authorqd
*
*/
{
@Override
publicvoidrun(){
System.out.println("run方法里面编写业务代码");
}
}
/**
*方法三:实现Callable<T>接口优点:可以传参数,有返回值类型
*
*@authorqd
*
*/
<Integer>{
@Override
publicIntegercall()throwsException{
returnnull;
}
}
Ⅱ java中多线程常见的几个参数
java中多线程常见的几个参数
sleep:在指定的毫秒数内让当前正在执行的线程休眠(暂停执行).
此操作受到系统计时器和调度程序精度和准确性的影响。
该线程不丢失任何监视器的所属权。
调用sleep的时候锁并没有被释放。
休眠
Java SE5引入了更加显示的sleep()作为TimeUnit类的一部分,这个方法允许你指定sleep()延迟的时间单元,因此可以提供更好的可阅读性。
wait:调用wait使线程挂起,直到线程得到了notify或notifyAll消息,线程才会进入就绪状态。
使你可以等待某个条件发生变化,而改变这个条件超出了当前方法的控制能力。
线程的执行被挂起,对象上的锁被释放。意味着另一个任务可以获得这个锁。
因此在该对象中的其他synchronized方法可以在wait期间被调用。
yield:相当于:我的工作已经做的差不多了,可以让给别的线程使用CPU了。
当调用yield时,你也是在建议具有相同优先级的其他线程可以运行。
对于任何重要的控制或在调整应用时,都不能依赖于yield。
yield并不意味着退出和暂停,只是,告诉线程调度如果有人需要,可以先拿去,我过会再执行,没人需要,我继续执行
调用yield的时候锁并没有被释放。
interrupt:中断线程。
Thread类包含interrupt()方法,因此你可以中止被阻塞的任务。
这个方法将设置线程的中断状态。
如果一个线程已经被阻塞,或者试图执行一个阻塞操作,那么设置这个线程的中断状态将抛出InterruptedException。
当抛出该异常或者该任何调用Thread.interrupted()时,中断状态将复位。
你在Executor上调用shutdownNow(),那么它将发送一个interrupt()调用给他启动的所有线程。
Ⅲ java runnable线程如何传参
Runnable里面没有传参函数,所以得自己造一个
0.自定义一个接口,继承Runnable,新增一个传参方法
{
publicMyRunnablesetParam(String...param);
}
实现这个自定义接口
MyRunnablesendMessage=newMyRunnable(){
Stringmessage;
@Override
publicMyRunnablesetParam(String...param){
message=param[0];
returnthis;
}
@Override
publicvoidrun(){
sendMessage(message);
}
};
2.初始化线程池,运行Runnable
=Executors.newCachedThreadPool();
cachedThreadPool.execute(sendMessage.setParam("Iamservice"));
如上所示,线程池调用的一个runnable实例,这个runnable实例传入了一个字符串参数
Ⅳ Java多线程编程,怎样实现线程间数据的传递
可以用拍孝樱Scoket套接字让服务器和慎亩客户端袭丛建立连接
可以根据Scoket对象的getInputStream()和getOutputStream()获得输入输出流
再往流里面写信息
就实现了简单的数据传递
当然等待数据
的时候会有阻塞现象
所以使用线程来保证数据不会因为等待而阻塞
Ⅳ ANDROID,JAVA编程,怎样才能传递参数给线程
线程之间允许共享一些参数变量,你说的不同数目的参数,是不是可以用ArrayList或者数组来解决。
还有一种就是类似于main函数的形式:
public static void test(Object...objects) {
}
可变参数,jdk5以上支持。
调用可以这样:test(a,b,c,d);
如果需要一个线程进行运算,并且等待线程运算完成并获取结果,
参考下线程池、AsyncTask。