不考慮多服務(wù)器,限制線程池的大小和隊列的限制來實現(xiàn)。
我們提供的服務(wù)有:網(wǎng)站設(shè)計、做網(wǎng)站、微信公眾號開發(fā)、網(wǎng)站優(yōu)化、網(wǎng)站認(rèn)證、石峰ssl等。為千余家企事業(yè)單位解決了網(wǎng)站和推廣的問題。提供周到的售前咨詢和貼心的售后服務(wù),是有科學(xué)管理、有技術(shù)的石峰網(wǎng)站制作公司
代碼如下:
package?org.zhang;
import?java.util.concurrent.BlockingQueue;
import?java.util.concurrent.Executors;
import?java.util.concurrent.SynchronousQueue;
import?java.util.concurrent.ThreadPoolExecutor;
import?java.util.concurrent.TimeUnit;
/**
*?單服務(wù)器用線程池實現(xiàn)秒殺的思路一
*?
*?@author?zhanghaijun
*?
*/
public?class?ExecutorsTest?{
public?static?boolean?flag?=?true;?//?秒殺物品的標(biāo)記
public?static?void?main(String[]?args)?{
ThreadPoolExecutor?pool?=?new?ThreadPoolExecutor(1,?1,?0L,
TimeUnit.MILLISECONDS,?new?SynchronousQueueRunnable());
ThreadTest?t1?=?new?ThreadTest("張三");
ThreadTest?t2?=?new?ThreadTest("李四");
ThreadTest?t3?=?new?ThreadTest("王五");
try?{
pool.execute(t1);
}?catch?(Exception?e)?{
System.out.println(t1.getUserName()?+?"沒有搶到");
}
try?{
pool.execute(t3);
}?catch?(Exception?e)?{
System.out.println(t3.getUserName()?+?"沒有搶到");
}
try?{
pool.execute(t2);
}?catch?(Exception?e)?{
System.out.println(t2.getUserName()?+?"沒有搶到");
}
pool.shutdown();
}
}
class?ThreadTest?extends?Thread?{
private?String?userName;
public?ThreadTest(String?userName)?{
super();
this.userName?=?userName;
}
@Override
public?void?run()?{
try?{
Thread.sleep(200);
if?(ExecutorsTest.flag)?{
System.out.println(this.userName?+?"秒殺成功");
ExecutorsTest.flag?=?false;
}
}?catch?(InterruptedException?e)?{
e.printStackTrace();
}
}
public?String?getUserName()?{
return?userName;
}
public?void?setUserName(String?userName)?{
this.userName?=?userName;
}
}
用redis,比如秒殺一個商品,把該商品的信息放在redis中,主要是那個庫存量,搶購的時候在redis中操作數(shù)據(jù)非??欤棵氩畈欢?萬次讀寫操作,這樣的并發(fā)量已經(jīng)夠用了
write后調(diào)用close來保存文件內(nèi)容,因為是寫到緩沖區(qū),并沒真正寫入文件系統(tǒng)。
close后,需要重新打開文件,這次以r模式打開即可,調(diào)用readInt,就沒問題。
最好不要用java寫秒殺器,因為你就算用 httpclient 拿到的也是未經(jīng)過渲染的html頁面,很多頁面js都沒有加載,你根本不知道渲染之后的頁面長什么樣子,你最好學(xué)學(xué)木魚的火車票搶票助手,他用的是 firefox 的插件 scriptish 來寫搶票腳本,其實搶票跟秒殺是一個原理的,我第一個秒的程序就是照著他的程序改的,用這個上手也比較容易,但是要求你對javascript比較熟悉,不過比用java實現(xiàn)靠譜多了
當(dāng)前名稱:java秒殺代碼 java如何實現(xiàn)秒殺
文章起源:http://bm7419.com/article4/ddcchoe.html
成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供全網(wǎng)營銷推廣、動態(tài)網(wǎng)站、手機網(wǎng)站建設(shè)、面包屑導(dǎo)航、標(biāo)簽優(yōu)化、微信小程序
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時需注明來源: 創(chuàng)新互聯(lián)