#include <mecab.h>
#include <stdio.h>
#include <pthread.h>
#define NUM 50

mecab_t *m;
char str[] = "太郎は次郎が持っている本を花子に渡した。";

void *parse (void *p)
{
   int i ;
   for (i = 0; i < 10; i++) {
      mecab_lock (m);
      printf ("%d %s\n", i, mecab_sparse_tostr(m, str));
      mecab_unlock(m);
   }
}

int main (int argc, char **argv) 
{
  pthread_t pt[NUM];
  int i; 

  m = mecab_new (argc,argv);

  if (!m) {
     fprintf (stderr, "ERROR: %s\n", mecab_strerror (m));
     return -1;
  }

  for (i = 0; i < NUM; i++) {
    pthread_create (&pt[i], NULL, &parse, 0);
  }

  for (i = 0; i < NUM; i++) pthread_join (pt[i], NULL);
}
