掃二維碼與項目經(jīng)理溝通
我們在微信上24小時期待你的聲音
解答本文疑問/技術咨詢/運營咨詢/技術建議/互聯(lián)網(wǎng)交流
多個Java線程撥號器同時申請?zhí)柎a不重復,斷電后能恢復.但是在使用的時候需要我們注意很多的代碼編寫。下面我們就來詳細的看看如何才能更好的進行相關的學習。希望大家有所收獲。以下就是對Java線程撥號器的相關問題介紹。

目前成都創(chuàng)新互聯(lián)公司已為1000+的企業(yè)提供了網(wǎng)站建設、域名、網(wǎng)站空間、網(wǎng)站托管、服務器租用、企業(yè)網(wǎng)站設計、龍?zhí)毒W(wǎng)站維護等服務,公司將堅持客戶導向、應用為本的策略,正道將秉承"和諧、參與、激情"的文化,與客戶和合作伙伴齊心協(xié)力一起成長,共同發(fā)展。
比如:
線程1 : 1, 4, 5, 6, 8, 9, 14…
線程2 : 2, 3, 7, 10, 11, 12, 13…
- package org.leno.j2se.lesson3.multiThread;
- import java.io.FileNotFoundException;
- import java.io.IOException;
- import java.io.RandomAccessFile;
- /**
- * @author leno
- * 一個簡單的放號器, 多個線程同時申請?zhí)柎a不重復,斷電后能恢復.
- */
- public class SendCode implements Runnable{
- //號碼
- int code = 0;
- RandomAccessFile raf = null;
- //初始化塊
- {
- try {
- raf = new RandomAccessFile("sendCode.txt","rw");
- code = raf.readInt();
- System.out.println("恢復上次記錄:"+code);
- } catch (FileNotFoundException e) {
- System.out.println("文件找不到!");
- }catch (IOException e) {
- System.out.println("沒有合適的整數(shù)值");
- }
- }
- public void run() {
- while(true){
- synchronized (this) {
- try {
- Thread.sleep(300);
- } catch (InterruptedException e) {
- // TODO Auto-generated catch block
- e.printStackTrace();
- }
- code++;
- try {
- raf.seek(0);//從文件開頭以字節(jié)為單位測量的偏移量位置,在該位置設置文件指針
- raf.writeInt(code);//從文件指針的當前位置開始寫
- } catch (IOException e) {
- // TODO Auto-generated catch block
- e.printStackTrace();
- }
- System.out.println(Thread.currentThread().getName()+"申請到號碼:"+code);
- }
- }
- }
- public static void main(String[] args) {
- SendCode sc = new SendCode();
- new Thread(sc,"一號線程").start();
- new Thread(sc,"二號線程").start();
- new Thread(sc,"三號線程").start();
- new Thread(sc,"四號線程").start();
- }
- }
以上就是對Java線程撥號器的詳細代碼介紹。
【編輯推薦】

我們在微信上24小時期待你的聲音
解答本文疑問/技術咨詢/運營咨詢/技術建議/互聯(lián)網(wǎng)交流