爱问知识人 爱问教育 医院库

JavaSocket通信技术收发线程互斥的解决方法是什么?

首页

JavaSocket通信技术收发线程互斥的解决方法是什么?

JavaSocket通信技术收发线程互斥的解决方法是什么?

提交回答

全部答案

    2017-07-28 11:07:35
  •   Java Socket通信技术在很长的时间里都在使用,在不少的程序员眼中都有很多高的评价。那么下面我们就看看如何才能掌握这门复杂的编程语言,希望大家在今后的Java Socket通信技术使用中有所收获。  下面就是Java Socket通信技术在解决收发线程互斥的代码介绍。
        1。package com。bill99。svr;  2。import java。io。IOException;  3。import java。io。InputStream;  4。import java。io。OutputStream;  5。
      import java。net。InetSocketAddress;  6。import java。net。Socket;  7。import java。net。SocketException;  8。import java。net。SocketTimeoutException;  9。
      import java。text。SimpleDateFormat;  10。import java。util。Date;  11。import java。util。Properties;  12。import java。util。Timer;  13。
      import java。util。TimerTask;  14。import java。util。concurrent。ConcurrentHashMap;  15。import java。util。concurrent。TimeUnit;  16。
      import java。util。concurrent。locks。Condition;  17。import java。util。concurrent。locks。ReentrantLock;  18。import org。apache。log4j。
      Logger;  19。/**  20。* title: socket通信包装类   21。* Description:   22。* CopyRight: CopyRight (c) 2009   23。* Company: 99bill。
      com   24。* Create date: 2009-10-14  25。*author sunnylocus  26。 * v0。10 2009-10-14 初类  27。* v0。11 2009-11-12 对命令收发逻辑及收发线程互斥机制进行了优化,  处理命令速度由原来8~16个/秒提高到25~32个/秒  28。
      */ public class SocketConnection {  29。private volatile Socket socket;  30。private int timeout = 1000*10; //超时时间,初始值10秒  31。
      private boolean isLaunchHeartcheck = false;//是否已启动心跳检测  32。private boolean isNetworkConnect = false; //网络是否已连接  33。private static String host = "";  34。
      private static int port;  35。static InputStream inStream = null;  36。static OutputStream outStream = null;  37。private static Logger log =Logger。
      getLogger  (SocketConnection。class);  38。private static SocketConnection socketConnection = null;  39。private static java。
      util。Timer heartTimer=null;  40。//private final Map recMsgMap= Collections。  synchronizedMap(new HashMap());  41。private final ConcurrentHashMap recMsgMap  = new ConcurrentHashMap();  42。
      private static Thread receiveThread = null;  43。private final ReentrantLock lock = new ReentrantLock();  44。private SocketConnection(){  45。
      Properties conf = new Properties();  46。try {  47。conf。load(SocketConnection。class。getResourceAsStream  ("test。conf"));  48。
      this。timeout = Integer。valueOf(conf。getProperty("timeout"));  49。init(conf。getProperty("ip"),Integer。valueOf  (conf。getProperty("port")));  50。
      } catch(IOException e) {  51。log。fatal("socket初始化异常!",e);  52。throw new RuntimeException("socket初始化异常,请检查配置参数");  53。}  54。
      }  55。/**  56。* 单态模式  57。*/  58。public static SocketConnection getInstance() {  59。if(socketConnection==null) {  60。synchronized(SocketConnection。
      class) {  61。if(socketConnection==null) {  62。socketConnection = new SocketConnection();  63。return socketConnection;  64。
      }  65。}  66。}  67。return socketConnection;  68。} 。

    H***

    2017-07-28 11:07:35

类似问题

换一换
  • 系统软件 相关知识

  • 电脑网络技术
  • 电脑网络

相关推荐

正在加载...
最新问答 推荐信息 热门专题 热点推荐
  • 1-20
  • 21-40
  • 41-60
  • 61-80
  • 81-100
  • 101-120
  • 121-140
  • 141-160
  • 161-180
  • 181-200
  • 1-20
  • 21-40
  • 41-60
  • 61-80
  • 81-100
  • 101-120
  • 121-140
  • 141-160
  • 161-180
  • 181-200
  • 1-20
  • 21-40
  • 41-60
  • 61-80
  • 81-100
  • 101-120
  • 121-140
  • 141-160
  • 161-180
  • 181-200
  • 1-20
  • 21-40
  • 41-60
  • 61-80
  • 81-100
  • 101-120
  • 121-140
  • 141-160
  • 161-180
  • 181-200

热点检索

  • 1-20
  • 21-40
  • 41-60
  • 61-80
  • 81-100
  • 101-120
  • 121-140
  • 141-160
  • 161-180
  • 181-200
返回
顶部
帮助 意见
反馈

确定举报此问题

举报原因(必选):