3个回答
展开全部
class test {
private static int s = 2000;
public synchronized static void sub(int m){//自定义方法,可以类比于自定义异常
int temp = s;
temp = temp - m;
try {
Thread.sleep((int)(Math.random() * 1000));
}catch (Exception e){
System.out.println(e.getMessage());
}
s = temp;
System.out.println("s = " + s);
}
}
class Customer extends Thread{
public void run(){//调用run()方法,运行run()方法中的程序片
for(int i = 1;i <= 4;i++){
test.sub(100);
//当线程cus1没有结束对sub方法的使用之前,cus2无法进入并运行此方法
//synchronized的作用就在于此
}
}
}
public class Synchronizedtest{
public static void main(String[] args){
Customer cus1 = new Customer();
Customer cus2 = new Customer();
cus1.start();
cus2.start();
}
}
自己研究下吧
线程据我所知在开发大型项目的时候才会用到
private static int s = 2000;
public synchronized static void sub(int m){//自定义方法,可以类比于自定义异常
int temp = s;
temp = temp - m;
try {
Thread.sleep((int)(Math.random() * 1000));
}catch (Exception e){
System.out.println(e.getMessage());
}
s = temp;
System.out.println("s = " + s);
}
}
class Customer extends Thread{
public void run(){//调用run()方法,运行run()方法中的程序片
for(int i = 1;i <= 4;i++){
test.sub(100);
//当线程cus1没有结束对sub方法的使用之前,cus2无法进入并运行此方法
//synchronized的作用就在于此
}
}
}
public class Synchronizedtest{
public static void main(String[] args){
Customer cus1 = new Customer();
Customer cus2 = new Customer();
cus1.start();
cus2.start();
}
}
自己研究下吧
线程据我所知在开发大型项目的时候才会用到
展开全部
//
1.继承Thread类,重写Run方法
class
MyThread1
extends
Thread
{
public
void
run()
{
//
你要执行的操作
}
}
//
2.实现Runnable接口,实现Run方法
class
MyThread2
implements
Runnable
{
public
void
run()
{
//
你要执行的操作
}
}
//
调用你创建的线程
class
Caller
{
public
static
void
main(String[]
args)
{
MyThread1
mt1
=
new
MyThread1();
//
或Thread
mt1
=
new
MyThread1();
Thread
t1
=
new
Thread(mt1);
t1.start();
MyThread2
mt2
=
new
MyThread2();
//
或Runnable
mt2
=
new
MyThread2();
Thread
t2
=
new
Thread(mt2);
t2.start();
}
}
1.继承Thread类,重写Run方法
class
MyThread1
extends
Thread
{
public
void
run()
{
//
你要执行的操作
}
}
//
2.实现Runnable接口,实现Run方法
class
MyThread2
implements
Runnable
{
public
void
run()
{
//
你要执行的操作
}
}
//
调用你创建的线程
class
Caller
{
public
static
void
main(String[]
args)
{
MyThread1
mt1
=
new
MyThread1();
//
或Thread
mt1
=
new
MyThread1();
Thread
t1
=
new
Thread(mt1);
t1.start();
MyThread2
mt2
=
new
MyThread2();
//
或Runnable
mt2
=
new
MyThread2();
Thread
t2
=
new
Thread(mt2);
t2.start();
}
}
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
深入了解线程池的作用以及重要性
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询