Multithreading (MT) has been extensively used for developing Graphical User Interface (GUI) and server side applications, because of the multiple benefits, both concerning program organization and efficiency, offered by it. On the other hand, multithreaded programming is difficult and error prone. It is easy to make a mistake in programming, which could lead to errors and these errors are difficult to detect. Thus automatic bug detection techniques, such as runtime analysis, static analysis, model checking and theorem proving are applied. Runtime analysis is based on the idea of concluding properties of interest from a single run of the program. We implement and compare two runtime analysis approaches, an ad-hoc custom based approach and model checker based approach to detect common bug patterns. Hyades, a plugin of Eclipse Integrated Development Environment (IDE) supplemented with bytecode instrumentation tool---JTrek is used for trace collection. All the relevant events required for analysis are collected using this trace collection approach. The state-of-art model checker Spin is used for trace verification. The comparison of the approaches is based on experiments we performed on three different Java multithreaded applications, and the results indicate that the custom based approach performs better than the model-based approach.