您的位置:首页 > 职场人生

趋势科技面试题目

2013-01-16 11:18 134 查看
12年6月份的时候参加了南京趋势科技的面试。

先更新一道题目,

1 用模板写一个线程安全的单例模式。

这个题目我写的不好,今天在陈硕大婶的git上找到了一个例子,贴上来。

// excerpts from http://code.google.com/p/muduo/
//

// Use of this source code is governed by a BSD-style license

// that can be found in the License file.

//

// Author: Shuo Chen (giantchen at gmail dot com)

#ifndef MUDUO_BASE_SINGLETON_H

#define MUDUO_BASE_SINGLETON_H

#include <boost/noncopyable.hpp>

#include <pthread.h>

#include <stdlib.h> // atexit

namespace muduo

{

template<typename T>

class Singleton : boost::noncopyable

{

 public:

  static T& instance()

  {

    pthread_once(&ponce_, &Singleton::init);

    return *value_;

  }

 private:

  Singleton();

  ~Singleton();

  static void init()

  {

    value_ = new T();

    ::atexit(destroy);

  }

  static void destroy()

  {

    delete value_;

  }

 private:

  static pthread_once_t ponce_;

  static T*             value_;

};

template<typename T>

pthread_once_t Singleton<T>::ponce_ = PTHREAD_ONCE_INIT;

template<typename T>

T* Singleton<T>::value_ = NULL;

}

#endif
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: