libeventの使い方
だんだんlibeventがどんなものかわかってきたのでメモ
libeventはスレッドセーフでないため,マルチスレッドで使う場合にはこのリソース(event_base)を分けて管理する必要がある.これについては最後に記す.
event_base1つだけで簡単にやる方法
ここより引用
libevent + 使い方 | ninxit.blog
1.event_init で初期化
2.event_set でイベント設定
3.event_add で設定したイベントを追加
4.event_del で追加したイベントを削除
5.event_dispatch でイベント通知の検知を開始
だいたいこんな感じである.順番に見ていく
1.event_init()
C言語でプロセス自身のメモリ使用量を知るには?
いくつかの方法があったのでメモする.
- getrusage()
このシステムコールを使えば,linuxならメモリ使用量を調べられる.
詳しくはこちらのサイトにある
http://goyoki.hatenablog.com/entry/2013/05/11/031202
libeventとは
日本語で書いてある記事があんまりなく,どんなソフトウェアなのかよくわからなかったので調べる.
libeventとは
英語版のwikipediaのページを和訳してみた.wikipediaを毛嫌いする人が多いが(信頼性がないだのどーのこーの),いうてそれなりに正しいこと書いてあるし,その分野の表面上の知識を得るだけなら十分.だと思う.
http://en.wikipedia.org/wiki/Libevent
C言語でマルチスレッドプログラミング
Cでマルチスレッドプログラミングする必要性がでてきたので,それについて調査.
pthread
マルチスレッドするならこのPOSIXのライブラリを使うのが普通っぽい.
memcachedはこのpthreadとlibeventで,コネクションをスレッドに振り分けてるんだと思う.
pthreadの使い方については,ここがよくまとめられている.
http://docs.oracle.com/cd/E19455-01/806-2732/6jbu8v6oi/index.html#tlib-79569
基本的には,これでスレッド生成する.
int pthread_create(pthread_t *tid, const pthread_attr_t *tattr, void*(*start_routine)(void *), void *arg);
- 第1引数のtidにはスレッドIDが格納される.
- 第2引数で属性を指定する.この属性でスレッドの優先順位・スケジューリングを変えることができる.他にもスタック・サイズやスレッドグループなどの機能も使うことができる.
- 第3引数には,スレッド化する処理(関数)を指定する.
- 第4引数には,第3引数で与えた関数の引数を指定する(んだと思う).
WASAPIの共有モードでビットパーフェクトにするには!
WASAPIで排他モードなら確実にビットパーフェクトな出力になるが,共有モードだとそうはならない.その原因と解決策をちょっと調べたのでまとめる.
参考にしたこのページを完全に丸パクリしただけ.
このブログすごく面白かったです.
http://community.phileweb.com/mypage/entry/2721/20120826/32495/
原因
winでWASAPI共有モードで出力するときは2つの原因によってビットパーフェクトが達成されない可能性がある.
gitの使い方
ソースコードのバージョン管理したいから,そろそろgitの使い方をいい加減おぼえる.
導入
ここらへんを参考にすると良い.
http://linux.keicode.com/prog/git.php
http://www.backlog.jp/git-guide/intro/intro2_1.html
$ sudo apt-get install git-core $ sudo apt-get install git-doc
gitk(たぶんGUIバージョンのgit)も使うなら
$sudo apt-get install gitk
次に名前とメールアドレスを登録
$ git config --global user.name "foo" $ git config --global user.email "bar@baz.com"