您现在的位置是:主页 > news > 做网站友情链接互换/网站制作策划书

做网站友情链接互换/网站制作策划书

admin2025/6/8 20:37:52news

简介做网站友情链接互换,网站制作策划书,如何知道一个网站是谁做的,长沙做网站的创建线程的几种方式: 1、继承Thread类 2、实现Runnable接口 3、使用Callable接口 4、使用线程池 Lock与Synchronized区别: 1、Lock不是java语言内置的,Synchronized是java语言的关键字; 2、Lock是一个接口类,通过这个…

做网站友情链接互换,网站制作策划书,如何知道一个网站是谁做的,长沙做网站的创建线程的几种方式: 1、继承Thread类 2、实现Runnable接口 3、使用Callable接口 4、使用线程池 Lock与Synchronized区别: 1、Lock不是java语言内置的,Synchronized是java语言的关键字; 2、Lock是一个接口类,通过这个…

创建线程的几种方式:
1、继承Thread类
2、实现Runnable接口
3、使用Callable接口
4、使用线程池

Lock与Synchronized区别:
1、Lock不是java语言内置的,Synchronized是java语言的关键字;
2、Lock是一个接口类,通过这个类实现同步访问;
3、Synchronized会自动让线程释放对锁的占用;而Lock需要手动释放锁,不然会出现死锁现象。

Lock例子:

//定义票数private int tickCount=30;//定义可重复锁private ReentrantLock lock=new ReentrantLock();//售票员public synchronized void ticker(){lock.lock();try {if (tickCount>0){System.out.println("当前售票的线程"+Thread.currentThread().getName()+",剩余票数:"+tickCount--);}}catch (Exception e){e.printStackTrace();}finally {lock.unlock();}}@Testpublic void contextLoads() {RenrenApplicationTests tickers = new RenrenApplicationTests();//定义售票员个数for (int i = 0; i < 6; i++) {new Thread(()->{for (int j = 0; j < 60; j++) {tickers.ticker();}}).start();}}

Synchronized例子:

//定义票数private int tickCount=30;//售票员public synchronized void ticker(){if (tickCount>0){System.out.println("当前售票的线程"+Thread.currentThread().getName()+",剩余票数:"+tickCount--);}}@Testpublic void contextLoads() {RenrenApplicationTests tickers = new RenrenApplicationTests();//定义售票员个数for (int i = 0; i < 6; i++) {new Thread(new Runnable() {@Overridepublic void run() {//抢票的人数for (int j = 0; j < 60; j++) {tickers.ticker();}}}).start();}}