From 96638c8b1794743a6a9dcce518b70c6c79e06e23 Mon Sep 17 00:00:00 2001 From: ioacademy-jikim Date: Fri, 15 Jun 2018 13:46:18 +0900 Subject: [PATCH] 10 --- 04_day.pptx | Bin 56806 -> 75320 bytes 04_day/thread/Android.bp | 4 +- 04_day/thread/IPCThreadState.cpp | 40 +++++++ 04_day/thread/a.out | Bin 13400 -> 12984 bytes 04_day/thread/tls.cpp | 200 +++++++++++++++++++++++++++++++ 5 files changed, 242 insertions(+), 2 deletions(-) create mode 100644 04_day/thread/IPCThreadState.cpp create mode 100644 04_day/thread/tls.cpp diff --git a/04_day.pptx b/04_day.pptx index 2788fad9d52aa4f16e9ba7c2c05c2dfe45fb00ae..8c660177b5aced7b5077dc97d02dd23efffa0265 100644 GIT binary patch delta 21389 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 b&wjb=Sm9vZIFeZ%rVax*V6fvHkPP-;1|jw? delta 4277 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 KiiPPtTK^w6;Vd`+ diff --git a/04_day/thread/Android.bp b/04_day/thread/Android.bp index cebd80a..beefc4c 100644 --- a/04_day/thread/Android.bp +++ b/04_day/thread/Android.bp @@ -1,8 +1,8 @@ cc_binary { - name: "my_thread_1", + name: "my_ipc", shared_libs: ["liblog", "libutils", "libbinder"], srcs: [ - "Thread.cpp", + "IPCThreadState.cpp", ], } diff --git a/04_day/thread/IPCThreadState.cpp b/04_day/thread/IPCThreadState.cpp new file mode 100644 index 0000000..ddc9316 --- /dev/null +++ b/04_day/thread/IPCThreadState.cpp @@ -0,0 +1,40 @@ +#if 1 +#include +#include +#include +#include + +using namespace android; +//-------------------------------------------------------- + +class MyThread : public Thread +{ + public: + bool threadLoop() + { + IPCThreadState *ipc1 = IPCThreadState::self(); + IPCThreadState *ipc2 = IPCThreadState::self(); + printf("ipc1=%p\n", ipc1 ); + printf("ipc2=%p\n", ipc2 ); + return false; + } +}; +int main() +{ + sp thread1 = new MyThread; + sp thread2 = new MyThread; + thread1->run("MyThread1"); + thread2->run("MyThread2"); + thread1->join(); + thread2->join(); + + return 0; +} +#endif + + + + + + + diff --git a/04_day/thread/a.out b/04_day/thread/a.out index 22bb185e6c0c5831d5803f86dcc9afb2b00f6ee3..ad2461de8afd15997aeace59a86d91e6b797aee9 100644 GIT binary patch literal 12984 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 literal 13400 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 diff --git a/04_day/thread/tls.cpp b/04_day/thread/tls.cpp new file mode 100644 index 0000000..d6c94ac --- /dev/null +++ b/04_day/thread/tls.cpp @@ -0,0 +1,200 @@ +#if 1 +#include +#include +#include +#include + +pthread_key_t key; + +void foo(void) +{ + int *count = (int *)pthread_getspecific(key); + if( count == 0 ) + { + count = new int(0); + printf("count=%p\n", count); + pthread_setspecific(key, count); + } + printf("foo() : %d\n", ++*count ); +} +//------------------------------------------------------- +void *handler_1(void *data) +{ + foo(); + foo(); + foo(); + return 0; +} + +void *handler_2(void *data) +{ + foo(); + foo(); + return 0; +} +void my_destructor(void* p) +{ + printf("my_destructor(%p)\n", p ); + delete (int*)p; +} + +int main() +{ + pthread_t thread[2]; + pthread_key_create(&key, my_destructor); + printf("key=%d\n", key ); + pthread_create( &thread[0], 0, handler_1, 0 ); + pthread_create( &thread[1], 0, handler_2, 0 ); + pthread_join( thread[0], 0 ); + pthread_join( thread[1], 0 ); + return 0; +} +#endif + +#if 0 +#include +#include +#include +#include + +void foo(int *count) +{ + ++*count; + printf("foo() : %d\n", *count ); +} + +void *handler_1(void *data) +{ + int count=0; + foo(&count); + foo(&count); + foo(&count); + return 0; +} + +void *handler_2(void *data) +{ + int count=0; + foo(&count); + foo(&count); + return 0; +} + +int main() +{ + pthread_t thread[2]; + pthread_create( &thread[0], 0, handler_1, 0 ); + pthread_create( &thread[1], 0, handler_2, 0 ); + pthread_join( thread[0], 0 ); + pthread_join( thread[1], 0 ); + return 0; +} +#endif +#if 0 +#include +#include +#include +#include +void *foo(void *data) +{ + char ip[] = "192.168.56.100"; + char *p; + char *saveptr; + + p = strtok_r( ip , "." , &saveptr); + while(p) + { + printf("[%s]\n", p ); + p = strtok_r( saveptr , "." , &saveptr); + sleep(1); + } + return 0; +} +void *bar(void *data) +{ + char hp[] = "010-1234-5678"; + char *p; + char *saveptr; + + p = strtok_r( hp , "-" , &saveptr); + while(p) + { + printf("[%s]\n", p ); + p = strtok_r( saveptr , "-" , &saveptr); + sleep(1); + } + return 0; +} + +int main() +{ + pthread_t thread[2]; + pthread_create( &thread[0], 0, foo, 0 ); + pthread_create( &thread[1], 0, bar, 0 ); + pthread_join( thread[0], 0 ); + pthread_join( thread[1], 0 ); + return 0; +} +#endif +#if 0 +#include +#include +#include +#include +void *foo(void *data) +{ + char ip[] = "192.168.56.100"; + char *p; + + p = strtok( ip , "." ); + while(p) + { + printf("[%s]\n", p ); + p = strtok( 0 , "." ); + sleep(1); + } + return 0; +} +void *bar(void *data) +{ + char hp[] = "010-1234-5678"; + char *p; + + p = strtok( hp , "-" ); + while(p) + { + printf("[%s]\n", p ); + p = strtok( 0 , "-" ); + sleep(1); + } + return 0; +} + +int main() +{ + pthread_t thread[2]; + pthread_create( &thread[0], 0, foo, 0 ); + pthread_create( &thread[1], 0, bar, 0 ); + pthread_join( thread[0], 0 ); + pthread_join( thread[1], 0 ); + return 0; +} +#endif + +#if 0 +#include +#include +int main() +{ + char ip[] = "192.168.56.100"; + char *p; + + p = strtok( ip , "." ); + while(p) + { + printf("[%s]\n", p ); + p = strtok( 0 , "." ); + } + return 0; +} +#endif